.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » gaina

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
gaina


Timp maxim de execuţie / test:
0.1s
Memorie totala disponibilă / stivă:
16MB / 1MB

Găina Chucky 767 trebuie să străbată curtea sărind de pe un coteţ pe altul, sau zburând peste coteţe, de la primul la ultimul coteţ. Coteţele sunt reprezentate prin nişte dreptunghiuri de lăţime 1m şi înălţimi date şi sunt numerotate în ordine de la stânga cu numerele de 1 la n. Două coteţe cu numere consecutive sunt lipite (adiacente). Iniţial, Chucky are un număr de unităţi de energie. Dacă la un moment dat Chucky ajunge să aibă energie strict negativă sau se află în imposibilitatea de a mai face un pas (întâlneşte un coteţ mai înalt decât cota la care se află), atunci nu mai poate continua acel drum.
Chucky poate să se deplaseze făcând următoarele tipuri de mişcări:
a) Pas. Găina păşeşte pe orizontală de pe un coteţ de înălţime H pe următorul coteţ de aceeaşi înălţime (în desen: de la poziţia h la i). În acest caz nu se pierde şi nu se câştigă energie.
b) Aterizare. Găina aterizează pe un coteţ de înălţime H, venind în zbor, tot de la înălţimea H (exemplu în desen: de la g la h). Nici în acest caz nu se pierde şi nu se câştigă energie.
c) Decolare. Găina zboară 1m pe orizontală de pe un coteţ (exemplu în desen de la x la a). În acest caz găina pierde o unitate de energie.
d) Zbor orizontal. Găina zboară pe orizontală (exemplu în desen, de la a la b, de la b la c, …). În acest caz pierde câte o unitate de energie pentru fiecare metru parcurs pe orizontală.
e. Picaj. Găina coboară pe verticală (exemplu în desen de la a la d, sau de la d la g…). În acest caz câştigă câte o unitate de energie pentru fiecare metru coborât.
Mai jos, avem un drum format din 4 coteţe, de înălţimi 4, 1, 2, 2. Exemplificăm diferite tipuri de mişcări din poziţia x (ceea ce nu reprezintă un traseu complet):


Cerinţă

Să se determine energia minimă (un număr natural) pe care trebuie să o aibă Chucky la începutul călătoriei (când se află pe primul coteţ), astfel încât ea să poată ajunge pe coteţul n, având în fiecare moment energia mai mare sau egală cu 0.

Date de intrare

Fişierul de intrare gaina.in conţine două linii. Pe prima linie se află numărul natural n. Pe linia a doua se află n numere naturale h1 h2 ... hn (unde hi reprezintă înălţimea coteţului i), separate de câte un spaţiu.

Date de ieşire

Fişierul de ieşire gaina.out conţine o singură linie pe care se află un număr natural K reprezentând energia minimă iniţială cu care găina Chucky poate să ajungă la coteţul n, având în fiecare moment energia mai mare sau egală cu 0.

Restricţii

0 < n < 10001
0 ≤ hi ≤ 30000

Pentru datele de test există întotdeauna soluţie (primul coteţ are înălţimea mai mare sau egală cu înălţimea oricărui alt coteţ).

Exemple

gaina.ingaina.out
6 3 0 0 2 1 1 2

autor: Prof. Dan Grigoriu
propunător: Prof. Emanuela Cerchez
Liceul de Informatică ″Grigore Moisil″
emanuela.cerchez@gmail.com
Probleme recomandate
De la ONI 2004: cuvinte1, materom, puncte3, rez, sortari, base3, coach, color, magic5, patrate6, turnuri, invsort, peri, trans, politie, sea, poligon3, sir7, poligon2, logic, coduri, snipers, sablon1, submdisj, v, jetoane, prodmax, printesa, palindrom, reziston
De acelaşi autor: lacuri, robinson, romeo, sir4, gardul, cub3
Despre programare dinamică: vedete, fbr, tgv, zeratul, rv, comun, retea, circuit, sumdif, copaci, drum, text, palind, joc, vikingi, rafturi, balaur, plimbare, party, pc, pioni, seif, iepuri, numere3, perm, ture, bilete, prop, ro, reduceri, cuburi, invest, cutie2, stalpi, nr2, judete, strict, auto2, tree, jobs, leaves, pstring, program, datorii, senzori, farfurii, joc1, barbie, ambigram, rlcs, cub1, bio, chimie1, otilia, pasune, remi, sir23, tren1, joc5, pachete, echipe, comb, agitatie, ivv, peste, pitici, pipe, shgraf, tabara1, stop, randuri, zidar, log, sant, produs, subsir, cover, bcast, emax, dist, mesaj1, imax, avere, asmax, raft, suma2, joc12, fni, nr4, join, transport, masina3, lsort, microvirus, fat, cafea, echipe1, anticip, bsir, diamant, petrom, evantai, spion, acolor, evo, bombo, lacusta, lant, team, pitici1, numere8, dep, stiva, subgeom, pviz, tir1, cabane, piramida1, mosia, cuvinte1, materom, sortari, turnuri, trans, politie, codul, dansatori, nkbiti, kperms, treegame, siruri2, 123, jucarii, bradut, joc15, expozitie, text3, ic, echilibru, distsir, kmax, stalpi1, gaz, triunghi2, v2d, cuiburi, mine, orientare, activ, secvbiti, kcons, pokemon, ubergraf, left, acerc, autostrazi, kdist, select, cazare, fluviu, telecomanda, parcela, pion, subs, suma4, sirmax, bdotcom, viena, sablon2, telecab, ikebana, radare, hacker, obstacole, robotel, centrala, verigi, cds, wg, minusk, radioactiv, enigma, jb, efect, maxviz, ripstick, progresii, maxtri, combcuv, blis, subsiruri, mijloc, probleme, unuzero, palindrom1, minerale, speed, zmax, spider, cntgcd, interclasare, bus, pariuri, riglef, fractii2, fall, arbsum, conuri, arbvalmax, procente, metrou
surse trimise | ajutor