Problem G
Robotdammsugaren
En robotdammsugare städar i en rutnäts-formad lagerlokal, där tunga lådor ligger på vissa rutor. Dammsugaren styrs av en sekvens av kommandon: upp ("^"), höger (">"), ned ("v"), vänster ("<"). När roboten får ett kommando åker den så långt den kan i den riktningen tills en låda är i vägen. Varje ruta robotdammsugaren någon gång befinner sig på städas, inklusive rutan den börjar på. Givet hur lagerlokalen ser ut, robotens startposition och en sekvens av kommandon, avgör hur många olika rutor som kommer ha städats när sekvensen är klar.
Indata
-
Den första raden innehåller tre heltal: $R$ ($3 \le R \le 2000$) och $C$ ($3 \le C \le 2000$), antalet rader och kolumner i den rutnäts-formad lagerlokalen, samt $N$ ($1 \le N \le 2000$), längden på kommandosekvensen.
-
Den andra raden innehåller en $N$ lång sträng bestående av "^", ">","v","<", kommandosekvensen som skickas till roboten.
-
De följande $R$ raderna utgör en beskrivning av hur den rutnäts-formad lagerlokalen ser ut. Den $i$:te av dessa rader innehåller $C$ tecken som beskriver hur den $i$:te raden ser ut. Varje tecken är antingen en punkt "." om en ruta är tom, en fyrkant "#" om rutan innehåller en låda eller "O" om rutan är robotens startposition. Det är garanterat att exakt en ruta innehåller "O". Dessutom är det garanterat att alla rutor längst kanten av rutnätet är "#".
Utdata
Skriv ut ett heltal – antalet olika rutor som städas av roboten.
Poängsättning
Din lösning kommer att testas på en mängd testfallsgrupper. För att få poäng för en grupp så måste du klara alla testfall i gruppen.
Grupp |
Poängvärde |
Gränser |
$1$ |
$20$ |
Gruppen består av ett enda testfall, det som finns på vår affisch (https://www.progolymp.se/2021/affisch.pdf). |
$2$ |
$20$ |
$R=3$ |
$3$ |
$30$ |
$N \times R \times C \le 1000$ |
$4$ |
$30$ |
Inga ytterligare begränsningar. |
Exempelfall
Sample Input 1 | Sample Output 1 |
---|---|
5 5 4 v>^v ##### #O#.# #...# ##..# ##### |
6 |
Sample Input 2 | Sample Output 2 |
---|---|
6 7 7 >>^<v>< ####### #.#.#.# #.....# #.....# ##O..## ####### |
12 |
Sample Input 3 | Sample Output 3 |
---|---|
3 12 3 <<< ############ #.#.....O.## ############ |
6 |
Sample Input 4 | Sample Output 4 |
---|---|
8 10 14 <v>^<v>v<^^><> ########## #.#......# #....#...# ##......O# #........# #..#.....# #....#...# ########## |
33 |