valutar

Time limit: 0.1s Memory limit: 8MB Input: valutar.in Output: valutar.outPoints by default: 10p

Valutar este un joc care poate fi jucat de oricâţi jucători. La începutul jocului, fiecare jucător primeşte LL lei şi EE euro, precum şi un jeton numerotat cu numărul jucătorului. Mai exact, dacă există MM jucători, vor fi MM jetoane, numerotate de la 11 la MM.
Tabla de joc este harta unui oraş pe care este ilustrat un traseu circular ce conţine NN case de schimb valutar, numerotate în ordinea de pe traseu de la 11 la NN. Fiind circular, după casa NN urmează casa 11. Pentru fiecare casă de schimb valutar se cunosc două valori CC şi VV (CC reprezintă câţi lei plăteşte un jucător dacă vrea să cumpere 11 euro de la casa respectivă, iar VV reprezintă câţi lei primeşte jucătorul dacă vrea să vândă 11 euro). Fiecare casă are o anumită culoare în funcţie de care jucătorul ajuns în punctul respectiv trebuie să efectueze o anumită acţiune astfel:

Culoare Cod Efect
Alb A Jucătorul nu face nimic la această mutare.
Roşu R Jucătorul primeşte un cartonaş denumit „pas”. Un jucător care are un cartonaş pas va folosi ulterior cartonaşul (o singură dată, după care cartonaşul va fi scos din joc) şi astfel evită să execute o acţiune pe care nu poate să o execute, pentru a nu fi eliminat din joc.
Galben G Jucătorul trebuie să cumpere ii euro (unde ii este numărul casei de schimb valutar la care se află). Dacă nu are suficienţi lei pentru a face acest lucru şi nu deţine un cartonaş pas, jucătorul este eliminat din joc. Dacă are un cartonaş pas, jucătorul îl va folosi şi nu va executa acţiunea, fără a fi eliminat din joc.
Verde V Jucătorul trebuie să vândă ii euro (unde ii este numărul casei de schimb valutar la care se află). Dacă nu are suficienţi euro pentru a face acest lucru şi nu deţine un cartonaş pas, jucătorul este eliminat din joc. Dacă are un cartonaş pas, jucătorul îl va folosi şi nu va executa acţiunea, fără a fi eliminat.

Iniţial toţi jucătorii pornesc de la casa de schimb valutar 11 care este albă. Există NN case de schimb valutar și MM jucători. Jucătorii mută pe rând în ordinea jetoanelor. Mai întâi mută jucătorul 11, apoi 2,3,,M2, 3, \dots, M. După jucătorul MM va muta din nou 11 etc. La o mutare, un jucător care nu a fost eliminat din joc:

  • „dă” cu zarul electronic; zarul va afişa un număr întreg nrnr;
  • avansează cu nrnr poziţii (adică dacă jetonul său este la casa ii va ajunge la casa i+nri+nr);
  • execută acţiunea asociată casei de schimb valutar în care a ajuns, în funcţie de culoarea acesteia.

Zarul electronic funcţionează astfel: la mutarea cu numărul jj este generat numărul nrjnr_j calculat după formula nrj=(anrj1+b) % N+1nr_j = (a \cdot nr_{j-1}+b)\ \%\ N+1, unde nrj1nr_{j-1} este numărul generat la mutarea j1j-1; a,ba, b şi nr0nr_0 sunt trei valori cunoscute, iar %\% reprezintă restul împărţirii întregi (mod).

Cerință

Scrieţi un program care să rezolve următoarele cerinţe:

  • determină numărul de jucători existenţi în joc după XX mutări;
  • determină jucătorul care a rămas în joc şi care are cea mai mare sumă de Euro după XX mutări.

Date de intrare

Fişierul de intrare valutar.in conţine pe prima linie cerinţa care trebuie să fie rezolvată (11 sau 22).
Pe a doua linie se află numerele naturale a,ba, b şi nr0nr_0, cu semnificaţia din enunţ.
Pe a treia linie se află numerele naturale N,M,L,E,XN, M, L, E, X, reprezentând numărul de case de schimb valutar, numărul de jucători, câţi lei şi câţi euro primeşte fiecare jucător la începutul jocului, respectiv numărul de mutări din joc. Pe următoarele NN linii sunt descrise casele de schimb valutar, câte o casă pe o linie, în ordinea de la 11 la NN, sub forma Cod C VCod \ C \ V, cu semnificaţiile din enunţ. Valorile scrise pe aceeaşi linie sunt separate prin câte un spaţiu.

Date de ieșire

Fişierul de ieşire valutar.out va conţine o singură linie. Dacă cerinţa este 11, linia va conţine un număr natural reprezentând numărul de jucători existenţi în joc după XX mutări. Dacă cerinţa este 22, linia va conţine numărul jetonului jucătorului rămas în joc şi care are cea mai mare sumă de euro după XX mutări.

Restricții și precizări

  • 1M,C,V1001 \leq M, C, V \leq 100;
  • 1a,b,nr0,N,X10 0001 \leq a, b, nr_0, N, X \leq 10 \ 000;
  • 1L,E1061 \leq L, E \leq 10^6;
  • Toate casele de schimb valutar au suficienţi lei şi euro pentru efectuarea oricărei acţiuni.
  • Se garantează că pentru datele de test la cerinţa 22 va rămâne în joc după XX mutări un singur jucător cu suma maximă de euro.
  • Pentru fiecare cerinţă se acordă 5050% din punctajul obţinut pe teste.

Exemplul 1

valutar.in

1
3 2 7
5 3 2 3 8
A 1 1
G 5 4
G 6 4
V 6 5
R 2 3

valutar.out

1

Exemplul 2

valutar.in

2
3 2 7
5 3 2 3 8
A 1 1
G 5 4
G 6 4
V 6 5
R 2 3

valutar.out

2

Explicații

Numerele care se obţin când se dă cu zarul se generează astfel: nrj=(3nrj1+2)nr_j = (3 \cdot nr_{j-1}+2)%5+1, unde nr0=7nr_0=7. Există în joc 55 case de schimb valutar şi 33 jucători. Toţi jucătorii au iniţial 22 lei şi 33 euro şi se află la casa de schimb valutar 11 care este albă. Se efectuează 88 mutări astfel:

Mutare Jucător nr De unde pleacă Unde ajunge Acţiune Lei Euro Observații
1 1 4 1 5 R 2 3 A primit un cartonaş pas
2 2 5 1 1 A 2 3 Nu face nimic
3 3 3 1 4 V 2 3 Trebuie să vândă 44 euro, dar nu are decât 33, nu are cartonaş pas, deci este scos din joc.
4 1 2 5 2 G 2 3 Trebuie să cumpere 22 euro, care costă 25=102 \cdot 5 = 10 lei, el nu are destui bani, dar are un cartonaş pas pe care îl foloseşte, deci rămâne în joc
5 2 4 1 5 R 2 3 A primit un cartonaş pas
6 1 5 2 2 G 2 3 Trebuie să cumpere 22 euro, care costă 25=102 \cdot 5 = 10 lei, el nu are destui bani, nu mai are niciuun cartonaş, deci este eliminat din joc
7 2 3 5 3 G 2 3 Trebuie să cumpere 33 euro care ar costa 63=186 \cdot 3 = 18 lei, nu are bani dar are un cartonaş pas pe care îl foloseşte şi nu este eliminat din joc
8 2 2 3 5 R 2 3 Primeşte un cartonaş pas

Log in or sign up to be able to send submissions!