DFS بازگشتی
Problem
با توجه به ماتریس N (1 <= N <= 100) توسط M (1 <= M <= 100). ماتریس حاوی ‘.’ – سلول های خالی و ‘#’ – سلول هایی که قابل بازدید نیستند شما فقط می توانید به بالا، پایین، چپ و راست حرکت کنید. پرسوجوهای q داده میشود: شماره ردیف و شماره ستون، اگر این سلول – ‘#’، سپس تبدیل به ‘.’، در غیر این صورت – ‘#’. برای هر یک از جستارهای q، تعیین کنید که آیا سلول tx;ty از سلول Sx;Sy خروجی در هر خط “بله”، در صورت دسترسی، و “خیر” - در غیر این صورت. تضمین شده است که سلول Sx; Sy و سلول tx؛ ty ‘#’ سلول در هر درخواست.
داده های ورودی.
در خط اول اعداد Sx (1 <= Sx <= 100)، Sy (1) را وارد کنید < = Sy <= 100)، tx (1 <= tx <= 100)، ty (1 <= ty <= 100)، N (1 <= N <= 100)، M(1 <= M <= 100 ) و q (1 <= q <= 100). N خطوط بعدی ماتریسی را نشان می دهد که در آن ‘.’ – سلول خالی و ‘#’ – سلولی که قابل بازدید نیست خطوط q بعدی شماره سطر و شماره ستون را می دهد که باید تغییر کند.
خروجی.
چاپ برای هر یک از جستارهای q “بله”، اگر از سلول Sx; Sy به سلول tx؛ ty را می توان ضربه زد، “نه” – در غیر این صورت.
<بدن>
ورودی |
خروجی |
1 1 2 3 3 3 2
.##
##.
###
1 2
2 2 |
خیر
بله |
توضیح:
پس از اولین درخواست، ماتریس به این صورت خواهد بود:
. . #
# # .
###
از نقطه 1;1 به 2;3 گذری وجود ندارد، بنابراین، ما “نه” را چاپ می کنیم.
پس از درخواست دوم، ماتریس به شکل زیر خواهد بود:
. . #
# . .
###
یک گذر از نقطه 1;1 به 2;3 وجود دارد، بنابراین ما “بله” را خروجی می دهیم. مسیری که می توانیم دنبال کنیم برجسته شده است.
(с) Vsevolod Shaldin