B. Пайт

хугацааны хязгаарлалт 2 секунд

санах ойн хязгаарлалт 256 мегабайт

оролт стандарт оролт

гаралт стандарт гаралт

Пайт бол олонд танигдсан изотерик програмчлалын хэл юм. Пайт өнгө, өнгийн пиксел блокуудаас бүрддэг. Энэ бодлогонд пайт хэлний хялбарчилсан дүрэмтэй олонлогуудыг ашиглана.

Программ нь будагдсан ба хар пикселүүдээс бүрдэх тэгш өнцөгт зураг байна. Будагдсан пиксел болгоныг 1-ээс 9 хүртэлх тоо байна (0 нь хар пиксел). Бүх нүд нь ижил өнгөтэй (хар биш) байдаг тэгш өнцөгтийг блок гэнэ. Бүх холбоост грүпп өнгөт пикселүүд ижил өнгийн тэгш өнцөгт блокуудыг үүсгэж чадах бөгөөд хар өнгийн грүпп пиксел нь ямар ч хэлбэрийн дүрсийг үүсгэж болно.

Программ нь зааварлагч заагчийг (ЗЗ) ашиглаж үйлдлүүдээ гүйцэтгэдэг бөгөөд гурван бүрэлдэхүүн хэсгээс тогтно.

  • Блок заагч (БЗ). Блок нь тухайн пикселтэй ямарч холбоогүйг тэмдэглэе.
  • Чиглэл заагч (ЧЗ). Зүүн, баруун, дээш, доош гэсэн чиглэлийг заана.
  • Блок сонгогч (БС). Харж буй чиглэлээс хамаарч зүүн эсвэл баруун блокийг заана. Чиглэлийн заагчтай абсолютаараа 90 градусаар зөрүүтэй байна. Харгалзан нар буруу болон нар зөв.

Анхандаа БЗ программын зүүн дээд буланд байрлах бөгөөд ЧЗ зүүн тийш зааж, БС зүүн талыг заана. (Доорх зургийг харна уу.)

Программ боловсрогдох нэг алхам нь ЗЗ-ийг дараах байдлаар шилжүүлэх юм. Боловсруулагч тухайн өнгийн блоктой ЧЗ-аас хамаарч хамгийн хол орших нүдийг сонгоно. Бүх пикселээс энэ нүдний хувьд, боловсруулагч БС-ийн хамгийн холыг сонгоно. Үүний дараа БЗ нь ЧЗ-ийн дараагийн пикселд очхыг оролдно. Хэрэв дараагийн пиксел будагдсан бол БЗ өөрчлөгдөж ЗЗ-ийн нөгөө хоёр нь өөрчлөгдөхгүй. Хэрэв дараагийн пиксел хар эсвэл зурагнаас хальж байвал БЗ өөрчлөгдөхгүй үлдэж, бусад хоёр нь өөрчлөгдөнө. Хэрэв БС зүүн тийш зааж байсан бол баруун тийш заадаг болно. ЧЗ хэвээрээ үлдэнэ. Хэрэв БС баруун тийш харж байвал зүүн тийш хардаг болоод, ЧЗ-ийг нар зөв 90 градус эргүүлнэ.

Ийм аргаар БС хэзээч хар блокийг заахгүй. (Зүүн дээд булан заавал хараас өөр өнгөтэй байна.)

Танд Пайт программын дүрс өгөгдсөн бол $n$ алхмын дараа аль өнгийг зааж байхыг тодорхойлох юм.

Оролт

Эхний мөрөнд $m$ ($1 ≤ m ≤ 50$) болон $n$ ($1 ≤ n ≤ 5*10^{7}$) бүхэл тоонууд байна. Дараагийн $m$ мөр программын мөрүүд байх бөгөөд бүх 1-ээс 50 хүртэл ижил урттай 0-ээс 9 хүртэлх тэмдэгтүүд байна. Эхний мөрний эхний тэмдэгт 0-ээс ялгаатай байна.

Гаралт

$n$ алхмын дараа зааж байх өнгийн тоо.

Орчуулсан: Б.Алтангэрэл

Жишээ тэстүүд

Оролт
2 10
12
43
Гаралт
1
Оролт
3 12
1423
6624
6625
Гаралт
6
Оролт
5 9
10345
23456
34567
45678
56789
Гаралт
5

Тэмдэглэл

Эхний жишээнд ЗЗ дараах байдлаар өөрчлөгдөнө. Эхний алхмын дараа блок 2 эхнийх шиг болоод хоёр алхам хэвээрээ үлднэ. 4-р алхмын дараа БЗ блок 3 уруу нүүнэ, 7-р алхмын дараа блок 4 үрүү, эцэст нь 10-р йлхамд БЗ блок 1 дээр буцаж ирнэ.

ЗЗ-ийг дээрх зурганд үзүүлэв : сумнууд нь нар зөв эргэж байгаа, голд байгаа зүү сум нь ЧЗ-г, хажууд нь байгаа сум нь БС-г харгалзан төлөөлнө.

Сэтгэгдлүүдийг ачааллаж байна...