Це дошка для ендгемів поселенців Катану:
Фон:
Дороги (довгі палички) та населені пункти (та міста) роздаються маленькими хатами. Ми кодуємо розміщення цих частин за допомогою наступної схеми: Зверху маємо ряд горизонтальних вершин і країв, де можна розмістити дорогу. Тоді у нас стовпчик лише доріг тощо. Використовуючи R для червоного, O для помаранчевого та B для синього, а _ для нічого, зображена дошка буде закодована як:
________RR_R_
__R_
__RR_R_RRR_____R_
B___R
_B_________B__OO_OOR_
B__B_R
BB_BBB_____B____RR_R_
OBB_O
OO__BB_BB__OOO_OO
O_O_
_O_OOO_O_____
Такою дошкою буде ваша вхідна рядок. Будь-яка літера [A-Z]
може вказувати колір гравця, але максимум чотири кольори (включаючи порожній). Інакше дошки гарантують свою дійсність згідно з правилами поселенців, що означає:
- Кожен колір матиме щонайменше дві суміжні дорожні мережі, які можуть бути або не можуть бути розбиті іншими населеними пунктами / містами (вершинні будівлі). Побачте, як помаранчеве поселення розбиває червону дорогу в правій частині зразка зображення.
- Кожна дорожня мережа гарантовано має принаймні одне поселення.
- Усі населені пункти та міста гарантовано знаходяться як мінімум за два краї від найближчого іншого населеного пункту / міста (вашого чи іншого)
- На одного гравця може бути лише 15 доріг на ігровій дошці.
- Для любителів катану: для цієї проблеми немає різниці між населеними пунктами та містами, тому я не розрізняю вхідний рядок.
Все це для конкретизації рядка "введення".
Найдовша дорога:
У поселенців гравці отримують два очки перемоги за те, що мають "найдовшу дорогу". Це визначається як: Найдовший суміжний єдиний шлях (вимірюється дорогами) від початкової точки до кінцевої точки, що не розбивається на поселення супротивників чи місто . Цикли нормальні, якщо ви можете простежити шлях від однієї конкретної початкової точки до однієї конкретної кінцевої точки. Отже, петля з 6 доріг плюс одна дорога, що відгалужується, - це довжина 7, але одна з двома відгалуженнями від 6 доріжної петлі з протилежних сторін все ще варта лише 7.
На прикладі карти Червона дорога з правого боку коштує лише 4, оскільки він відрізаний помаранчевим поселенням з правого боку дошки (тому поселення взагалі включені). Синій має дорогу довжиною 13, а помаранчевий - дорогу 12. Верхня дорога червоного коштує лише 7, оскільки вона не з'єднується з двома окремими дорогами поруч.
Вихід:
Усі гравці, які мають дорогу найдовшої довжини (вона може бути більше однієї, якщо є зв'язки), а потім пробіл та / або підкреслення підкреслюється в базі 10, як триває ця дорога.
Отже, вихід для прикладної дошки буде таким:
B 13
Постановка проблеми:
Ви можете написати програму або функцію , отримати плату введення через STDIN або як аргумент рядка до вашої функції, який повертає результат, описаний вище як рядок, або друкує його в STDOUT (або найближчу альтернативу).Ви можете необов'язково включати в висновок один зворотний новий рядок.
Це кодовий гольф , найкоротший виграш програми. Звичайно, стандартні лазівки заборонені .
From the top, we have a row horizontal vertices and edges where a road can be placed. Then we have a column of only roads, and so forth.
Мені знадобилося кілька хвилин, щоб зрозуміти, що це означає. Вам слід чіткіше пояснити, що горизонтальні рядки містять також населені пункти та місця поселення.