Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | pinball.in, pinball.out | Sursă | ONIS 2015, Runda 1 |
Autor | Mihai Nitu | Adăugată de | UNIBUC Impaler-009 Challenge costyv87 •The_Viper_The_Mountain_And_The_Imp |
Timp execuţie pe test | 0.95 sec | Limită de memorie | 20480 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Por Costel si Pinball
Por Costel se joaca pinball. Dupa multe ore de studiat jocul prin lovituri repetate ale mesei de pinball cu ratul, Por Costel crede ca s-a prins cum functioneaza.
Exista N spring-uri pe masa de pinball, care au rolul de a lansa bila mai departe. Imaginandu-ne o vedere “de sus” a mesei, springul i este al i-lea spring de la stanga la dreapta, adica pe orizontala. Acum, spring-urile sunt caracterizate si de pozitia lor pe verticala. Anume, al -lea spring are o coordonata verticala .
Daca bila se loveste de un spring , acesta o lanseaza catre un alt spring , > . Spunem, in acest caz, ca bila ricoseaza din spring-ul in spring-ul . Exista doua posibilitati:
- ricosare in sus: > , numai daca ultima ricosare a fost in jos.
- ricosare in jos: < , numai daca ultima ricosare a fost in sus.
Prima ricosare nu are nicio restrictie: Por Costel lanseaza bila catre primul spring, iar din acesta ea ricoseaza fie in sus fie in jos. Punctajul pe care il obtine Por Costel la o lansare este numarul de spring-uri din care ricoseaza bila. O data ce ea a trecut de ultimul spring, tura s-a terminat.
Por Costel a petrecut foarte mult timp calculand punctajul maxim pe care il poate obtine lansand bila corect. Insa, ce nu stie el e ca faptul ca loveste masa din cand in cand face ca unele spring-uri sa-si modifice coordonata verticala . Ajutati-l pe Por Costel sa calculeze in fiecare moment punctajul maxim pe care il poate obtine.
Date de intrare
Fişierul de intrare pinball.in va contine pe prima linie numarul . A doua linie va contine un sir de numere intregi . A treia linie va contine numarul iar urmatoarele linii vor contine cate doua numere si reprezentand o modificare astfel: spring-ul capata coordonata verticala ()
Date de ieşire
În fişierul de ieşire pinball.out se vor afla linii. Prima linie contine raspunsul pentru starea initiala a vectorului. Apoi, avem linii cu raspunsul dupa fiecare din cele modificari.
Restricţii
- ≤ , ≤
- ≤ , ≤
- ≤ ≤
- Se garanteaza ca nu vor exista si astfel incat atat in sirul initial cat si pe parcursul celor operatii
Exemplu
pinball.in | pinball.out |
---|---|
10 1 10 2 5 6 3 4 8 9 7 3 1 11 7 17 8 12 | 7 6 8 6 |