سوال 5 ACM
پنجشنبه, ۲ مرداد ۱۳۹۳، ۱۰:۱۷ ب.ظ
شرح تمرین
در این برنامه میخواهیم موقعیت یک روبات را بعد از انجام چند حرکت در یک دنیای دو بعدی پیدا کنیم.
روبات در یک صفحه دو بعدی با ابعاد m سطر و n ستون قرار دارد (مقادیر m و n از ورودی دریافت می شود). مختصات گوشه بالا سمت چپ صفحه، معادل (1,1) در نظر گرفته می شود و در نتیجه مختصات گوشه پایین و سمت راست صفحه معادل (m, n) خواهد بود.
موقعیت روبات در شروع حرکت در سطر a و ستون b است (a, b).
حرکات مجاز روبات، حرکت به بالا(Up)، پایین(Down)، راست(Right) و چپ(Left) است.
حرکت به بالا(Up): در این حرکت، روبات به سطر بالایی می رود. به عنوان مثال اگر روبات در موقعیت (u, v) باشد، بعد از این حرکت در موقعیت (u-1, v) قرار خواهد گرفت.
حرکت به پایین(Down): در این حرکت، روبات به سطر پایینی می رود. به عنوان مثال اگر روبات در موقعیت (u, v) باشد، بعد از این حرکت در موقعیت (u+1, v) قرار خواهد گرفت.
حرکت به راست(Right): در این حرکت، روبات به ستون سمت راست می رود. به عنوان مثال اگر روبات در موقعیت (u, v) باشد، بعد از این حرکت در موقعیت (u, v+1) قرار خواهد گرفت.
حرکت به چپ(Left): در این حرکت، روبات به ستون سمت چپ می رود. به عنوان مثال اگر روبات در موقعیت (u, v) باشد، بعد از این حرکت در موقعیت (1-u, v) قرار خواهد گرفت.
ضمنا از آنجا که ابعاد صفحه مورد نظر محدود است، در صورتی که روبات از صفحه خارج شود، برای همیشه گم خواهد شد! بدیهی است که بعد از گم شدن روبات، هیچ فرمان دیگری از طرف روبات پذیرفته نخواهد شد.
ورودی برنامه
در خط اول ورودی تعداد سطرهای صفحه(m) و در خط دوم تعداد ستونهای صفحه(n) وجود دارد.
در خط سوم تعداد دفعات شبیه سازی حرکت روبات(t) وجود دارد.
در ادامه به ازای هر دفعه انجام شبیه سازی(t) اطلاعات زیر قرار دارند.
در خط بعدی سطر شروع حرکت روبات (a) و در خط بعد از آن ستون شروع حرکت روبات (b) قرار دارد. در ادامه تعداد دستورات داده شده به روبات در این آزمایش (n) در یک سطر آمده است. در نهایت در n خط، دستورات این آزمایش (شامل Up و Down و Right و Left) آمده است به طوری که در هر خط یک دستور نوشته شده است.
خروجی برنامه
به ازای هر دفعه انجام شبیه سازی(t) در خروجی یک خط چاپ می شود که نمایش دهنده موقعیت نهایی روبات است. در این خط به ترتیب سطر و ستون روبات قرار می گیرد. همچنین در صورتی که روبات گم شده باشد، در خروجی به جای مختصات روبات، تنها عبارت LOST چاپ می شود.
نمونه ورودی برنامه
4
5
2
3
4
6
Up
Up
Up
Down
Right
Down
1
1
3
Down
Right
Right
5
2
3
4
6
Up
Up
Up
Down
Right
Down
1
1
3
Down
Right
Right
نمونه خروجی برنامه
Lost
2 3
2 3
۹۳/۰۵/۰۲