Sunteți pe pagina 1din 6

RAUCODER 2020

PROBLEME
Data: 30 mai 2020

Concursul acesta este despre RAUGigel. RAUGigel este un elev pasionat de algoritmică și programare, cu o
imaginație bogată, care vă propune astăzi o serie de jocuri, toate având același punctaj.

Acceptați provocarea?

Problema 1. Ambuscada
RAUGigel se gândește la un joc: N soldați, numerotați de la 1 la N sunt prinși într-o ambuscadă. Asupra lor se execută
M atacuri de tun. Atacurile afectează nu doar un soldat, ci un interval de soldați, provocând fiecăruia dintre aceștia
o anumită pierdere (damage). De exemplu, atacul (3,7,5) afectează soldații 3,4,5,6,7 cu 5 damage. La început, toți
soldații au V vieți. RAUGigel se întreabă câți soldați rămân în viață după cele M atacuri.

Cerința
Dându-se N, M, V și apoi M atacuri de tun de forma i j k cu semnificația: fiecare soldat din intervalul închis [i,j] pierde
k vieți, RAUGigel vrea să afle câți soldați din întreaga lui armată mai rămân în viață după cele M atacuri.
Date de intrare
Se citesc de la consolă numerele naturale N, M și V separate cu un spațiu, apoi se citesc M linii pe care se află câte
3 numere naturale i j k separate cu un spațiu, cu semnificația de mai sus.
Date de ieșire
Se afișează la consolă un singur număr natural reprezentând numărul de soldați rămași în viață.
Restricții și precizări
• Limită de timp: 0.01 secunde
• Limită de memorie: 1 MiB
• 2 ≤ N ≤ 109, 1 ≤ M ≤ 105, 1 ≤ V ≤ 109
• In toate testele, 1 ≤ i ≤ j ≤ N, 1 ≤ k ≤ V
• Pentru teste în valoare de 30 de puncte, N<=105 și M<=50

Bd. Expoziției nr.1B, București 012101 sect. 1, Tel: +004-0372.120.101 | Fax: +004-021.318.35.66 | Operator date cu caracter personal
nr.32853/2014
rectorat@rau.ro | www.rau.ro
Exemple:
In: Out: Explicație:
6 4 10 2 Inițial toți soldații aveau 10 vieți.
252
După prima tragere: 10 8 8 8 8 10
137
263 După a doua tragere: 3 1 1 8 8 10
356
După a treia tragere: 3 0 0 5 5 7
După a patra tragere: 3 0 0 0 0 1
In final, 2 soldați au rămas în viață.

Bd. Expoziției nr.1B, București 012101 sect. 1, Tel: +004-0372.120.101 | Fax: +004-021.318.35.66 | Operator date cu caracter personal
nr.32853/2014
rectorat@rau.ro | www.rau.ro
Problema 2. Pixeli
RAUGigel este pasionat de grafică, așa că se gândește să vă facă un cadou de 1 Iunie: un joc cu imagini. El creează
într-un editor grafic o imagine bitmap binară de dimensiuni N X N pixeli. O imagine bitmap binară este o matrice de
pixeli, fiecare pixel fiind un bit. Să considerăm că valoarea 0 (nesetat) înseamnă alb și valoarea 1 (setat) înseamnă
negru. Apoi RAUGigel împarte imaginea în patru imagini pătrate egale de latură N/2 pe care le notează de la 1 la 4
(1 este imaginea din colțul dreapta-sus, 2 este cea din colțul dreapta-jos, 3 stânga-jos și 4 stânga-sus). El repetă
procedeul pentru fiecare dintre cele 4 imagini obținute, și tot așa, reducând mereu latura la jumătate și notând
direcțiile de la 1 la 4, până când ajunge la imagini de mărimea unui pixel.
Pentru simplitate, să presupunem că N este o putere a lui 2, să spunem K. Deci, după K împărțiri succesive de
imagini, orice pixel poate fi identificat printr-un șir unic format din cifrele 1, 2, 3 și 4, de lungime K.
De exemplu, dacă N=4, atunci K=2. Vom avea 2 împărțiri succesive:

→ →

Imaginea inițială 4 imagini reduse la jumătate 16 pixeli


Inițial, imaginea este complet albă.
Acum începe jocul. RAUGigel se gândește la 2 tipuri de operaţii:
Operaţia 1 x , schimbă starea pixelul identificat cu șirul x, descris ca mai sus. Dacă pixelul x nu este setat, îl setează.
Dacă pixelul x este deja setat, atunci îl resetează.
Operaţia 2 x , unde x are aceeași semnificație ca mai sus, este o interogare: dacă x este setat, se răspunde cu 0.
Dacă x nu este setat, se cere determinarea dimensiunii celei mai mari imagini complet albe, dintre cele create de
RAUGigel, care conține pixelul x. Dimensiunea este dată de numărul de pixeli conținut.
Cerința
Dându-se N cu semnificația de mai sus și M, reprezentând numărul de operaţii şi cele M operaţii de tipul 1 și 2, să
se răspundă la operaţiile de tip 2.
Date de intrare
Se citesc de la consolă numerele naturale N și M separate cu un spațiu, apoi se citesc M linii pe care se află câte o
cifră de 1 sau 2 și câte un string, de forma tip_operaţie x, reprezentând tipul operaţiei şi șirul x.
Date de ieșire
Se afișează la consolă răspunsurile pentru operaţiile de tip 2, câte unul pe linie.
Restricții și precizări
• Limită de timp: 0.05 secunde
• Limită de memorie: 5 MiB
• 2 ≤ N ≤ 2*109, 1 ≤ M ≤ 104
• In toate testele, N este o putere a lui 2
• Toate șirurile x sunt corect definite
• Pentru teste în valoare de 30 de puncte, N<=1.000 și M<=50

Bd. Expoziției nr.1B, București 012101 sect. 1, Tel: +004-0372.120.101 | Fax: +004-021.318.35.66 | Operator date cu caracter personal
nr.32853/2014
rectorat@rau.ro | www.rau.ro
Exemple:
In: Out: Explicație:
4 11 0 Inițial imaginea este albă:
1 11 4
00 00
1 22 4
00 00
2 22 1
2 33 4 00 00
2 44 4 00 00
2 24 16 După primele 2 operații de tip 1, imaginea va conține:
1 22
2 22 00 01
2 24 00 00
1 11 00 00
2 44 00 01

Următoarele 4 interogări vor referi, în ordine, pixelii marcati cu a, b, c, d


(imaginea de mai jos). Cum a era setat, răspunsul este 0. Cea mai mare
imagine albă, creată de RAUGigel, care conține b, este colțul stânga jos
cu 4 pixeli (bolduit). La fel pentru c. În cazul pixelului d, răspunsul este 1
(chiar el).
c0 0e
00 00
00 d0
b0 0a

Urmează o operație de tip 1 care resetează pixelul notat cu a (șirul 22).


Următoarele 2 interogări pentru a și d generează răspunsurile 4,
respectiv 4.
În final, se resetează și pixelul e, iar ultima interogare, pentru c, va
determina răspunsul 16, toată imaginea fiind acum complet albă.
In: Out:
89 0
1 111 16
1 222 16
2 222 4
2 333 16
2 444 16
2 242
1 222
2 222
2 242

Bd. Expoziției nr.1B, București 012101 sect. 1, Tel: +004-0372.120.101 | Fax: +004-021.318.35.66 | Operator date cu caracter personal
nr.32853/2014
rectorat@rau.ro | www.rau.ro
Problema 3. Joc de șah
RAUGigel a terminat cursurile on-line pe ziua de astăzi. El tot la jocuri se gândește. De această dată la un joc cu
piesele de șah. El desenează o tablă de șah sub forma unei matrici pătratice de dimensiune N și așează în fiecare
dintre cele N x N celule câte o piesă de șah. Se consideră că dispune de N X N exemplare din fiecare piesă posibilă
(regi, regine, ture, nebuni, cai, pioni), iar culoarea nu este relevantă. RAUGigel se întreabă care este numărul minim
de căsuțe (celule) prin care trebuie să treacă un rege oarecare ca să ajungă la o regină oarecare. Regele se poate
deplasa câte o celulă în patru direcții posibile: N, E, S, V.
Dar asta nu e tot. La începutul jocului, RAUGigel are 15 vieți. Atunci când RAUGigel mută un rege (oarecare) peste
primul pion, el pierde o viață. Vestea bună este că, după aceea, RAUGigel poate lua oricâți pioni fără ca numărul
său de vieți să fie afectat. Când ia un cal, regele pierde două vieți, dar după aceea poate lua, fără pierderi, oricâți
cai. La fel se întâmplă și în cazul nebunilor, primul nebun îl costa patru vieți și, respectiv al turelor, care îl costă opt
vieți.
RAUGigel dorește să afle care este cel mai scurt drum de la un rege oarecare către o regină oarecare, dar cu condiția
ca la sfârșitul jocului să îi rămână cât mai multe vieți.

Cerința
a) Care este numărul maxim de vieți care îi rămân lui RAUGigel?
b) Prin câte căsuțe trece traseul de lungime minimă? Ce rege mută și pe ce traseu? Dacă există mai multe drumuri
de lungime minimă, atunci se va determina drumul mai mic alfanumeric. (O celulă este mai mică alfanumeric decât
altă celulă dacă se află pe un rând cu indice mai mic sau se află pe același rând cu cea de-a doua, dar pe o coloană
cu indice mai mic)
Date de intrare
Se citește de la consolă un număr natural A. Pentru toate testele de intrare, numărul A poate avea doar
valoarea 1 sau valoarea 2. Apoi se mai citește un rând pe care se găsește numărul natural N, cu semnificația din
enunț. Pe următoarele N linii se află câte N litere mari cu următoarea semnificație: P – pion, C – cal, N - nebun, T -
tură, Q – regină și K – rege. Caracterele de pe fiecare rând nu au spații între ele.
Date de ieșire
Dacă valoarea lui A este 1, se va rezolva numai punctul a) din cerință. În acest caz, se va afișa la consolă un singur
număr natural ce reprezintă numărul de vieți care îi rămân lui RAUGigel la sfârșitul jocului.
Dacă valoarea lui A este 2, se va rezolva numai punctul b) din cerință. În acest caz, se va afișa la consolă, pe prima
linie numărul natural K ce reprezintă numărul de căsuțe prin care trece regele ales (se numără atât căsuța din care
pleacă, cât și cea în care ajunge), apoi pe următoarele K rânduri sunt perechi de forma i j (separate cu un singur
spațiu) unde i și j reprezintă linia, respectiv coloana celulelor prin care trece regele (în ordinea de deplasare).
Restricții și precizări
• Limită de timp: 0.005 secunde
• Limită de memorie: 1 Mib
• 2 ≤ N ≤ 100
• In fiecare test există cel puțin o literă K și cel puțin o literă Q
• Pentru rezolvarea corectă a primei cerinţe se acordă 45 de puncte

Bd. Expoziției nr.1B, București 012101 sect. 1, Tel: +004-0372.120.101 | Fax: +004-021.318.35.66 | Operator date cu caracter personal
nr.32853/2014
rectorat@rau.ro | www.rau.ro
Exemple:

In: Out: Explicație:


1 14 RAUGigel va alege să mute regele de pe poziția 3 4. Drumul va
trece prin 5 celule (va număra inclusiv celulele de plecare și
6
sosire), iar acestea sunt: 3 4, 3 5, 4 5, 5 5, 6 5. În drumul său a luat
PCQPNP doar pioni, deci a pierdut o singură viață, i-au rămas 14.

PCCCCP Se observă că mai există un drum de lungime 5 care îl costă tot o


singură viață:
QNPKPK
3 4, 4 4, 4 5, 5 5, 6 5, dar care este mai mic alfanumeric decât:
PCKPPP
3 4, 3 5, 4 5, 5 5, 6 5 (perechea 3 5 e mai mică alfanumeric decât
NKPPPP
perechea 4 4).
NNPPQP
De asemenea, un alt drum este: 3 4,3 3,3 2,3 1, acesta chiar mai
scurt (trece prin numai 4 căsuțe), totuși pe acest drum RAUGigel
ar ataca un pion și un nebun, care l-ar costa 1 + 4 = 5 vieți și ar
rămâne cu numai 10, de aceea nu îl va alege.
In: Out: PCNPNP
2 5 PCPPPP
6 34 QNPKPK
PCQPNP 35 PCKPPP
PCCCCP 45 NKPPPP
QNPKPK 55 NNPPQP
PCKPPP 65
NKPPPP
NNPPQP

Succes!

Bd. Expoziției nr.1B, București 012101 sect. 1, Tel: +004-0372.120.101 | Fax: +004-021.318.35.66 | Operator date cu caracter personal
nr.32853/2014
rectorat@rau.ro | www.rau.ro

S-ar putea să vă placă și