Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | shield.in, shield.out | Sursă | FMI No Stress 2017 |
Autor | Baltatu Andrei | Adăugată de | |
Timp execuţie pe test | 0.5 sec | Limită de memorie | 66048 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Shield: Underworld Ruler
Can you handle the zombies?
Te-ai gândit vreodată cum ar fi o apocalipsă cu zombie? Perfect, eşti în locul care trebuie!
Tu eşti Death, unul din cei patru călăreţi ai apocalipsei, iar task-ul tău este să omori câţi mai mulţi zombi pentru a-ţi popula imperiul cu suflete. Fiind şi un perfecţionist vrei să îi elimini pe toţi pentru a nu-ţi strica titlul 'The Almighty Slasher'.
Se ştie ca arma ta preferată este double-scythe dar ca să fii mai optim trebuie să foloseşti scutul cu plasmă. Să împărţim toată harta ca un grid infinit. Tu te aflii pe linia 1 si coloana 1(capătul stâng al scutului), iar scutul are formă de dreptunghi de lăţime 1 şi lungime X. Zombi se află pe linii > 1 şi niste coloane de start predefinite, aceştia fiind reprezentaţi prin pătrăţele de 1×1. Zombi se mută cu o pătrăţică mai jos la fiecare secundă. Mutările tale constau în mutarea scutului în stânga sau dreapta cu o pătrăţică pe secundă. Un zombie va fi eliminat dacă la momentul ajungerii la linia 1 a intrat în scut(coloana sa este inclusă în intervalul curent al scutului [start, start + X - 1]).
Trebuie să afişezi o serie de miscări ale scutului astfel încât să prinzi toţi zombi! Dăi bătaie!
Date de intrare
Fişierul de intrare shield.in va conţine pe prima linie N şi X, reprezentând numărul de zombi respectiv lungimea scutului. Pe următoarele N linii se vor afla două numere L şi C reprezentând linia şi coloana unui zombie.
Date de ieşire
În fişierul de ieşire shield.out va conţine pe prima linie K, numărul de mişcări folosite. Dupa urmează K linii de forma "left Y" sau "right Y" care reprezintă în ce direcţie şi cât va fi mutat scutul. Suma Y-urilor trebuie să fie egală cu linia maximă a unui zombie - 1. (left/right Y = scutul va fi mutat left/right cu o pătrăţică pe secundă în următoarele Y secunde)
Restricţii
- Coordonatele inamicilor şi lungimea scutului se vor afla intre [-109, 109]
- 1 ≤ N ≤ 105
Exemplu
shield.in | shield.out |
---|---|
3 10 3 11 5 14 10 0 | 2 right 4 left 5 |
Explicaţie
...