Купа машин вишикується у 4-х сторонній знак зупинки в очікуванні продовження. Усі плутаються щодо того, хто рухається далі, хто прямує і т. Д. Явно неоптимальний.
Ваше завдання полягає в оптимальному плануванні руху руху на знаку зупинки.
Ви отримуєте в якості 4 рядків запитів повороту, по одному для кожного з чотирьох кардинальних напрямків. Кожен запит - або Lдля лівої, Sдля прямої, або Rдля правої.
LLSLRLS
SSSRRSRLLR
LLRLSR
RRRLLLL
Перший ряд - це смуга біля входу на північ до перехрестя. Перший автомобіль в черзі хоче повернути ліворуч (тобто вийти на Схід). Наступні ряди призначені для входу на Схід, Південь та Захід. Тож перший автомобіль, що приїжджає із Заходу, бажає вийти на Південь.
Трафік рухається послідовно. На кожному кроці ви повинні вибрати підмножину автомобілів на чолі їх ліній, щоб продовжити. Вибрані машини не повинні перешкоджати один одному. Два автомобілі заважають, якщо вони виходять з одного напрямку або якщо вони повинні перетинати шлях один одного (з урахуванням стандартних правильних правил водіння). Тож два протилежні автомобілі, які бажають їхати прямо, можуть піти на одному кроці. Так можуть 4 машини, всі бажаючі повернути праворуч. Дві протилежні машини можуть одночасно повернути ліворуч.
Ваше завдання полягає в плануванні перехрестя в мінімальній серії кроків. Для кожного кроку виведіть рядок із вказаними напрямками компасів вхідних автомобілів. Для наведеного вище прикладу мінімальний графік - 14 кроків. Один мінімальний графік:
N [L from North]
E [S from East]
E [S from East]
E [S from East]
NESW [L from North, R from East, L from South, R from West]
NE [S from North]
EW [R from East]
NESW [L from North, R from East, L from South, R from West]
W [L from West]
EW [L from East, L from West]
NESW [R from North, L from East, R from South, L from West]
NES [L from North, R from East, L from West]
NS [S from North, S from South]
SW [R from South, L from West]
Ваша програма повинна мати можливість обробляти 50 машин у кожній лінії за 1 хвилину. Введення 4-х рядків та вихід розкладу може бути зручним для вашої мови.
Найкоротша програма виграє.
Більш великий приклад:
RRLLSSRLSLLSSLRSLR
RLSLRLSLSSRLRLRRLLSSRLR
RLSLRLRRLSSLSLLRLSSL
LLLRRRSSRSLRSSSSLLRRRR
що вимагає мінімум 38 патронів. Одне можливе рішення:
E
EW
E
ESW
S
NS
ES
NESW
NSW
ESW
ES
NSW
NS
NS
NW
EW
NSW
NS
EW
NES
EW
NSW
NE
E
NE
EW
E
E
EW
EW
EW
W
ESW
NSW
NSW
NS
NSW
NEW