Martin sa veľmi dobre pozná s ostatnými gréckymi bohmi. Raz sa však rozprával so svojím starým známym HADesom, ktorý počas celej noci strážil brány Olympu. Po dlhej šichte z neho vyliezlo iba:
Sssssssssss SSSsssS SSssssssssSS SSSSSSS SSSSsSSss?! sssssssSS ssSSSSSSSsSS SSSSSSSSs ssssssss sssSSSSSSS SSSSSSS SSSSsssS. SSSS SSSSSssss SSSssssSSS SSSsssSSSss sSSssss?
Určite každý z vás ovláda hadie jazyky, Pythony a iné Kobry, ale pre tých z vás, ktorí zadaniu vyššie nerozumejú, je tu aj jeho preklad do reči smrteľníkov.
Zadanie:
Vašou úlohou je odpovedať na základe pohybu hadíka v mriežke s rozmermi \(m \times n\), na koľkých políčkach mohol začať bez toho, aby vyšiel mimo mriežku. Hadík sa každým kolom zväčšuje a pohybuje sa do jedného zo štyroch základných smerov. Ak je postupnosť na vstupe neplatná (hadík narazil sám do seba alebo vyšiel mimo mriežku), odpovedzte 0.
Formát vstupu
V prvom riadku vstupu dostanete dve čísla \(m\) - počet stĺpcov, \(n\) - počet riadkov, Nasleduje 1 riadok v ktorom dostanete reťazec dĺžky \(t\) obsahujúci znaky: ‘H’,‘D’,‘P’,‘L’ - reprezentujúce smery: hore, dole, vpravo, vľavo.
V sadách platia nasledujúce obmedzenia:
Sada | 1 | 2 | 3 | 4 |
---|---|---|---|---|
\(1 \leq m, n \leq\) | \(20\) | \(10^3\) | \(10^3\) | \(10^9\) |
\(1 \leq t \leq\) | \(20\) | \(10^3\) | \(10^5\) | \(10^5\) |
V sadách 1, 2 navyše platí že hadík sa pohybuje iba dole a doprava.
Formát výstupu
Na jeden riadok vypíšte jedno číslo - na koľkých políčkach mohol had
začať. Keďže výsledok môže byť fakt veľký nezabudnite použiť
long long
v C++
Príklady
Input:
3 3
DDD
Output:
0
Nezáleží, kde hadík začne v mriežke, vždy zíde o 3 políčka nižšie (mimo mriežku)
Input:
4 3
DDPPHLL
Output:
0
Hadík narazil sám do seba
Input:
13 13
PDDDPDDDPPPDPPPPPDDD
Output:
9
Odovzdávanie
Na odovzdávanie sa musíš prihlásiť
Otázky a diskusia
Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.