Pagini recente »
Istoria paginii utilizator/vladbuzetelu
|
Clasament s15_lab9c
|
Istoria paginii runda/2023-11-26-clasa-8-tema-11
|
Diferențe pentru problema/nod între reviziile 12 și 11
|
Diferențe pentru problema/tanc între reviziile 4 și 23
Diferențe pentru
problema/tanc între reviziile
#4 si
#23
Nu există diferențe între titluri.
Diferențe între conținut:
== include(page="template/taskheader" task_id="tanc") ==
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:
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 scade, codificată cu *S*, va reduce cu 1cm înălțimea căsuței de dedesubt, *cu condiția să nu scadă sub zero*. Dacă înălțimea căsuței terenului este zero atunci căsuța de tip 'S' nu va avea nici un efect.
* 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.
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.
h2. Cerință
h2. Date de ieșire
În fișierul de ieșire $tanc.out$ ...
Î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.
h2. 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.
h2. Exemplu
table(example).
|_. tanc.in |_. tanc.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
h3. Explicație
|_. 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
|
|\2_. Explicații |\2_. Explicații |\2_. Explicații |
|\2. Tancul se deplasează astfel:
sud - sud – est – nord - vest.
În final tancul ocupă o grila de
3 x 3 pătrățele al cărei colț
stânga-sus este la coordonatele
(4, 1)
|\2. În poziția finală tancul va
fi poziționat pe al doilea segment
al șenilei și orientat către vest.
|\2. După cele cinci deplasări
acestea vor fi înălțimile finale
ale terenului.
|
h2. Explicații grafice la exemplu
table(picture_examples).
|_. Explicație |_. Situația inițială, înainte de mișcare |_. Mișcare și segmentul de șenilă pe sol |_. Situația finală, după mișcare |
|Tancul intră mereu în colțul stânga sus.
Mai întâi pune segmentul *1*.
|!problema/tanc?tanc_sit_initiala1.PNG!
|!problema/tanc?tanc_seg_senila1.PNG!
|!problema/tanc?tanc_sit_finala1.PNG!
|
|Prima direcție este *S*.
Tancul se mișcă în direcția *S*,
dar pune pe sol segmentul *2*.
|!problema/tanc?tanc_sit_initiala2.PNG!
|!problema/tanc?tanc_seg_senila2.PNG!
|!problema/tanc?tanc_sit_finala2.PNG!
|
|A doua direcție este *S*.
Tancul se mișcă în direcția *S*,
dar pune pe sol segmentul *3*.
|!problema/tanc?tanc_sit_initiala3.PNG!
|!problema/tanc?tanc_seg_senila3.PNG!
|!problema/tanc?tanc_sit_finala3.PNG!
|
|A treia direcție este *E*.
Tancul se mișcă în direcția *E*,
dar pune pe sol segmentul *4*.
|!problema/tanc?tanc_sit_initiala4.PNG!
|!problema/tanc?tanc_seg_senila4.PNG!
|!problema/tanc?tanc_sit_finala4.PNG!
|
|A patra direcție este *N*.
Tancul se mișcă în direcția *N*,
dar pune pe sol segmentul *1*.
|!problema/tanc?tanc_sit_initiala5.PNG!
|!problema/tanc?tanc_seg_senila5.PNG!
|!problema/tanc?tanc_sit_finala5.PNG!
|
|A cincea direcție este *V*.
Tancul se mișcă în direcția *V*,
dar pune pe sol segmentul *2*.
|!problema/tanc?tanc_sit_initiala6.PNG!
|!problema/tanc?tanc_seg_senila6.PNG!
|!problema/tanc?tanc_sit_finala6.PNG!
|
...
== include(page="template/taskfooter" task_id="tanc") ==
Nu există diferențe între securitate.