Revizia anterioară Revizia următoare
| Fișierul intrare/ieșire | tanc.in, tanc.out | Sursă | Test IQ Academy 2023 clasa a 6-a |
|---|---|---|---|
| Autor | Cristian Frâncu | Adăugată de |
|
| Timp de execuție pe test | 0.05 sec | Limită de memorie | 262144 KB |
| Scorul tău | N/A | Dificultate |
Vezi soluțiile trimise | Statistici
Tanc (clasa a 6-a)
Un tanc ciudat are șenile compuse din S segmente. Un segment de șenilă este o grilă de M×M căsuțe de trei tipuri: normal, adună și scade. Tancul se deplasează într-un teren pătrat ce formează o grilă de căsuțe egale ca dimensiune cu căsuțele segmentelor șenilei tancului, terenul având latura de N căsuțe. Terenul se află la înălțimea H, în cm. Când tancul se deplasează segmentele sale ajung câte unul pe rând pe pământ, întâi segmentul 1, apoi segmentul 2, etc. După segmentul S urmează segmentul 1. Segmentul curent suprapune grila sa de căsuțe peste o regiune din matrice. La suprapunere se întâmplă următoarele:
- O căsuță de tip adună, codificată cu A, va adăuga 1cm de pământ la înălțimea căsuței de dedesubt.
- O căsuță de tip scade, codificată cu S, va reduce cu 1cm înălțimea căsuței de dedesubt, cu condiția să nu scadă sub zero.
- O căsuță de tip normal, codificată cu N, nu are nici un efect, căsuța de dedesubt rămâne la aceeași înălțime.
Tancul intră în teren din colțul din stânga-sus, orientat către est, călcând pe primul segment din șenilă. Apoi primește la intrare comenzi de tipul E, N, V, sau S ce reprezintă deplasări cu o căsuță în direcția corespunzătoare punctului cardinal. Pentru o deplasare oarecare tancul se va răsuci cu fața către acel punct cardinal, segmentele șenilei sale rotindu-se ca atare. Tancul se oprește atunci când se termină comenzile de executat. Se garantează că tancul nu va ieși din teren.
La o deplasare a tancului segmentul actual al șenilei se ridică, iar următorul segment calcă pe pătratul M×M din matrice aflat în direcția dată de comandă. Segmentul va călca direct în poziția corectă pentru direcția de deplasare.
Cerință
Dându-se o descriere a șenilei, mărimea și înălțimea terenului și o secvență de comenzi, să se calculeze:
- Coordonatele finale ale tancului.
- Descrierea șenilei după executarea comenzilor de la intrare. Șenila va fi afișată începând cu segmentul de pe pământ, iar orientarea segmentelor trebuie să fie corectă, depinzând de orientarea tancului.
- Înălțimile terenului după executarea comenzilor. Înălțimile vor fi codificate cu cifre de la 0 la 9, sau cu Z dacă înălțimea depășește 9.
Date de intrare
În fișierul de intrare tanc.in se vor afla:
- Pe prima linie T, numărul cerinței, 1, 2 sau 3.
- Pe a doua linie numerele S M N H, respectiv numărul de segmente ale șenilei, latura unui segment, latura terenului și înălțimea inițială a terenului.
- Pe următoarele M linii codificarea primului segment al șenilei, folosind literele N S și A (normal, scade, adună).
- Pe următoarele M linii codificarea celui de-al doilea segment al șenilei.
… - Pe următoarele M linii codificarea segmentului numărul S.
- Pe ultima linie comenzile de deplasare a tancului, codificate prin literele E N V S. Linia se termină cu caracterul sfârșit de linie.
Date de ieșire
În fișierul de ieșire tanc.out veți afișa:
- L și C, coordonatele finale ale tancului, dacă cerința este 1. Colțul din stânga-sus are coordonate (1, 1).
- Descrierea șenilei, dacă cerința este 2. Veți afișa cele S segmente, începând cu segmentul ce se află pe pământ, cu orientarea corectă conform orientării șenilei după executarea comenzilor.
- Înălțimile terenului după executarea comenzilor, dacă cerința este 3. Înălțimile vor fi afișate pe linii, fiecare înălțime fiind codificată cu o cifră, dacă înălțimea este maxim 9, sau cu Z dacă înălțimea depășește 9.
Restricții
- 2 ≤ S, M ≤ 10
- 2×M ≤ N ≤ 200
- N multiplu de M
- 0 ≤ H ≤ 100
- 0 ≤ nr. comenzi de deplasare ≤ 50 000
- Se garantează că tancul nu va ieși din teren.
- Se acordă 10p pentru cerința 1, 30p pentru cerința 2 și 60p pentru cerința 3.
Exemplu
| tanc.in | tanc.out | tanc.in | tanc.out | tanc.in | tanc.out | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 4 3 9 3 NAS NNA SNN ASS NAA NSN ANS NAN NSN NNN AAA SSS SSENV |
4 1 |
2 4 3 9 3 NAS NNA SNN ASS NAA NSN ANS NAN NSN NNN AAA SSS SSENV |
NSN AAN SSA NSN NAN SNA SSS AAA NNN NNS ANN SAN |
3 4 3 9 3 NAS NNA SNN ASS NAA NSN ANS NAN NSN NNN AAA SSS SSENV |
342333333 334333333 233333333 324243333 352433333 233332333 334333333 243444333 332222333 |
tanc.in | tanc.out | tanc.in | |||
Explicație
...


Poți vedea testele pentru această problemă accesând