Ваше завдання полягає в тому, щоб, маючи карту в якості введення, зменшити її або зменшити в залежності від масштабу. Зверніть увагу , що шкала дано це масштаб , з допомогою якого , щоб збільшити вихід , тому шкала від 0 до 1 буде фактично збільшити.
Наприклад, з огляду на таку (погано зроблену) карту:
..____....
../OOO\...
..\OO/\...
..........
І коефіцієнт масштабу 2, спочатку слід розділити його на 2х2 розділи:
.. | __ | __ | .. | ..
.. | /O | OO | \. | ..
----------------------
.. | \O | O/ | \. | ..
.. | .. | .. | .. | ..
І в кожному розділі знайдіть найпоширеніший персонаж:
.__..
.....
Зауважте, що був неоднозначний розділ:
__
OO
Я вирішив використовувати _для цього розділу, але використання Oбуло б цілком прийнятним.
Якщо, наприклад, вам дали коефіцієнт масштабу 4, ви розділили його на 4х4 секції так:
..__ | __.. | ..
../O | OO\. | ..
..\O | O/\. | ..
.... | .... | ..
Як ви можете сказати, карта не ідеально вписується в розділи 4x4, але це добре, оскільки ми можемо просто зменшити розмір розділу в бічній частині.
Крім того, кожен раз, коли нам потрібно відрізати наші карти, ми вирізаємо внизу або з правого боку.
Отримана карта виглядатиме так:
...
Яка цікава карта!
Для масштабних факторів нижче 1, таких як 0,5, процес простіший, оскільки ми збільшуємо його натомість. Візьміть цю карту:
./O\.
.\O/.
Масштабування в масштабі 0,5:
..//OO\\..
..//OO\\..
..\\OO//..
..\\OO//..
Зверніть увагу , що всякий раз , коли ваш коефіцієнт масштабування менше 1, наступний буде завжди так: 1/(zoom factor) % 2 == 0. Коли це вище 1, єдина гарантія, яку ви маєте - це цілий ряд. Коли вона є 1, карта повинна залишатися такою ж.
Приклади:
4
/OO\
|OO|
|OO|
\OO/
O
0.25
ABCD
AAAABBBBCCCCDDDD
AAAABBBBCCCCDDDD
AAAABBBBCCCCDDDD
AAAABBBBCCCCDDDD
1
My zoom
should
not change
My zoom
should
not change
Ви також можете взяти карту як масив, розділений новою лінією.
.ніж O. Відрізаємо з правого і нижнього боку.