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

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


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

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 maraton1.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 maraton1.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.

Exemple

maraton1.inmaraton1.outExplicaţii
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).

autor: Prof. Cristina Iordaiche
propunător: Prof. Emanuela Cerchez
Liceul de Informatică ″Grigore Moisil″
emanuela.cerchez@gmail.com
Probleme recomandate
surse trimise | ajutor