Professional Documents
Culture Documents
2015 Informatica Internationala Day 2 Horses Subiecte Si Solutii
2015 Informatica Internationala Day 2 Horses Subiecte Si Solutii
horses
Day 2
Language: ro-RO
Horses
Lui Mansur i place s creasc cai urmnd tradiia strmoilor si. El are acum ce mai mare herghelie
din Kazakhstan. Nu aa stteau lucrurile cu ani n urm. Cnd Mansur era doar un dzhigit (
cuvntul Kazakh pentru tnr ) el avea doar un singur cal. El visa s fac o grmad de bani i n cele
din urm s ajung un bai ( cuvntul kazakh pentru om foarte bogat).
S numerotm anii de la la
n ordine cronologic ( adic anul
este cel mai recent an
). Clima din fiecare an influena creterea hergheliei. Pentru fiecare an Mansur memoreaz un
coeficient de cretere ntreg i pozitiv
. Dac la nceputul anului aveai cai atunci la sfritul
acestuia aveai
cai n herghelie.
Caii puteau fi vndui numai la sfritul unui an. Pentru fiecare an , Mansur memoreaz un ntreg
pozitiv
: preul unui cal la sfritul anului . La sfritul fiecrui an era posibil s vinzi orici cai,
fiecare la acelasi pre
.
Mansur se ntreab care este cea mai mare sum de bani pe care ar putea s o obin dac alege cele
mai bune momente n care s vnd cai pe parcursul celor ani. Tu ai onoarea s fii invitaltul lui
Mansur n toi ( cuvntul kazakh pentru vacan ) i s rspunzi la ntrebarea lui.
Memoria lui Mansur se mbuntete seara, aa ca va face un ir de modificri. Fiecare
modificare va schimba fie una dintre valorile
, fie una dintre valorile
. Dup fiecare
modificare el te ntreab dinnou care e suma cea mai mare pe care o poate obine din vnzarea cailor.
Modificrile lui Manur sunt cumulative: fiecare rspuns trebuie s in cont de toate modificrile
precedente. Reinei c oricare dintre valorile
sau
ar putea fi modificat de mai multe ori.
Rspunsul lui Mansur poate fi un numr foarte mare. Pentru a evita lucrul cu numere mari se cere
doar restul modulo
al rspunsului.
Exemplu
S presupunem c
Pentru valorile iniiale Mansur poate obine cel mai mult dac vinde ambii si cai la sfritul anului 1.
Procesul decurge dup cum urmeaz:
Iniial, Mansur are un cal.
Dup anul 0 el are
cai .
1 / 3
cai .
n .
cai.
cal.
cai.
. Profitul total va fi
Cerin
Se dau , , , i lista de modificri. nainte de prima modificare i dup fiecare modificare,
calculeaz suma maxim pe care o poate obine Mansur pe caii si, modulo
.
Trebuie s implementezi funciile init, updateX i updateY.
init(N, X, Y) Grader-ul va apela prima aceast funcie, exact o dat.
N: Numrul de ani.
X: un ir de lungime
anul .
. Pentru
Y: un ir de lungime
. Pentru
.
2 / 3
pos .
Aceast funcie trebuie s returneze suma maxim pe care o poate obine Mansur dup
aceast modificare, modulo
.
updateY(pos, val)
pos: un ntreg din intervalul
val: noua valoare a lui
pos .
Aceast funcie trebuie s returneze suma maxim pe care o poate obine Mansur dup
aceast modificare, modulo
.
Se asigur c att valorile iniiale ct i cele modificate pentru
i
sunt ntre i
inclusiv.
Dup init, grader-ul va apela updateX i updateY de cteva ori. Numrul total de apeluri ale
funciilor updateX i updateY va fi .
Subprobleme
Subproblema puncte
1
17
17
20
4
5
23
23
Precizri suplimentare
,
none
i
pentru init i
apelurile updateX
none
none
Grader-ul de pe calculatorul tu
Grader-ul de pe calculatorul tu citete date de intrare din fiierul horses.in n urmtorul format:
linia 1: N
linia 2: X[0] X[N - 1]
linia 3: Y[0] Y[N - 1]
linia 4: M
liniile 5, , M + 4: trei numere type pos val (type=1 pentru updateX i type=2 pentru
updateY).
Grader-ul de pe calculatorul tu afieaz valoarea returnat de apelul init urmat de valorile
returnate de toate apelurile updateX i updateY.
3 / 3