Fişierul intrare/ieşire:maraton.in, maraton.outSursăONI 2010 clasa a 7-a
AutorCristina IordaicheAdăugată dealex.cojocaruCojocaru Alexandru alex.cojocaru
Timp execuţie pe test1 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Maraton (clasa a 7-a)

Pentru desfăşurarea probei de maraton a poştaşilor, organizatorii au plasat pe traseu n+2 semafoare, la distanţe egale unul de celălalt. Primul semafor e plasat pe linia de start, iar ultimul semafor este plasat pe linia de sosire şi ambele vor avea aprinsă culoarea verde din momentul în care se dă startul şi până la sfârşitul cursei. Pentru fiecare semafor întâlnit pe traseu, cele trei culori ale sale: roşu, galben şi verde se aprind succesiv astfel: întotdeuna după roşu se face galben, după galben se face verde, iar după verde urmează roşu, şi aşa mai departe. Culoarea roşie a fiecărui semafor se schimbă în galben după 5 secunde, galbenul se schimbă în verde după 3 secunde, iar verdele în roşu după 2 secunde.

În momentul în care se dă startul şi se porneşte cronometrul toate cele n semafoare de pe traseu se aprind. La unele va fi culoarea roşie, la altele galben, iar la altele verde, nefiind sincronizate la acest moment.

Fiecare poştaş înscris la maraton trebuie să parcurgă traseul de la linia de start până la linia de sosire şi să treacă pe rând de cele n semafoare, doar pe culoarea verde a fiecăruia dintre ele. Dacă un concurent ajunge în dreptul semaforului şi acesta este verde va trece obligatoriu mai departe. Dacă ajunge în dreptul unui semafor chiar în secunda în care se schimbă culoarea acestuia, atunci concurentul poate trece mai departe doar dacă această schimbare s-a facut de la galben la verde, nu şi de la verde la roşu sau de la roşu la galben.

Cerinţă

Ştiind că poştaşul Andrei parcurge distanţa dintre două semafoare succesive în k secunde, să se scrie un program care să determine numărul minim de secunde necesar pentru ca el să treacă linia de sosire.

Date de intrare

Fişierul de intrare maraton.in conţine pe prima linie numerele naturale n şi k despărţite printr-un spaţiu. Valoarea n reprezintă numărul de semafoare plasate între cele două linii, cea de start şi cea de sosire, iar numărul k reprezintă timpul necesar, exprimat în secunde, pentru parcurgerea distanţei dintre oricare două semafoare succesive de pe traseu. Pe următoarea linie se află n valori întregi despărţite prin câte un spaţiu, ce reprezintă culoarea pe care o are fiecare semafor în momentul startului. Vom codifica cu -2 culoarea roşie, -1 culoarea galbenă şi cu 0 culoarea verde a semaforului.

Date de ieşire

Fişierul de ieşire maraton.out va conţine o singură linie pe care se va scrie numărul natural s, care reprezintă numărul minim de secunde necesar pentru ca Andrei să treacă de linia de sosire.

Restricţii

  • 1 ≤ n ≤ 5000
  • 1 ≤ k ≤ 600
  • Linia de sosire este plasată imediat după ultimul semafor.

Exemplu

maraton.inmaraton.outExplicaţie
3 2
0 0 -1
25
Se dă startul şi după 2 secunde poştaşul ajunge în dreptul primului semafor. La acesta tocmai se schimbă
culoarea din verde în roşu şi ca urmare poştaşul nu poate trece. Aşteaptă 8 secunde, se face verde iar după
alte 2 secunde ajunge în dreptul celui de-al doilea semafor(au trecut 12 secunde de la start). Aici mai
aşteaptă 8 secunde, se face verde şi poate trece. Parcurge în 2 secunde distanţa până în dreptul celui de-al
treilea semafor.Când ajunge în dreptul acestui semafor(după 22 secunde de la start) mai aşteaptă o secundă (1),
se face verde şi peste 2 secunde trece linia de sosire(22+1+2=25 secunde).
Trebuie sa te autentifici pentru a trimite solutii. Click aici