Fişierul intrare/ieşire: | hercule.in, hercule.out | Sursă | Algoritmiada 2015 Runda Finala |
Autor | Eugenie Daniel Posdarascu | Adăugată de | |
Timp execuţie pe test | 0.15 sec | Limită de memorie | 20480 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Hercule
Hercule a primit un nou task (daca il rezolva primeste niste blat). Acesta trebuie sa se duca in beciul olimpic sa omoare Hydra blatista. Hydra initial are un singur cap (cu indicele 1). De fiecare data cand Hercule taie un cap cu indicele i, Hydrei ii cresc urmatoarele i bla.... capete. Mai exact, daca Hydra are capetele de la 1 la x si Hercule taie capul y, Hydrei ii cresc capetele de la x + 1 pana la x + y. In momentul in care Hercule a taiat un cap, acel cap nu se mai regenereaza a doua oara, ca urmare un cap cu indicele i nu poate sa fie taiat de mai multe ori. Pentru a ajunge un luptator de talie olimpica, Hercule s-a decis sa ajunga in punctul in care Hydra a obtinut capul K dar nici un alt cap cu indicele mai mare. Deoarece Hercule stie doar celebra metoda backtracking, voi trebuie sa il ajutati sa determine numarul minim de operatii pentru a isi realiza scopul (cat si care sunt operatiile).
Date de intrare
Fişierul de intrare hercule.in va contine pe prima linie un numar natural T, numarul de teste. Pe urmatoarele T linii se vor afla cate un numar natural K.
Date de ieşire
Fişierul de ieşire hercule.out va contine raspunsul pentru cele T teste. Pentru un test se va afisa pe prima linie sol - numarul minim de mutari efectuate de Hercule. Pe cea de a 2-a linie se vor afisa sol numere reprezentand mutarile (indicii capetelor pe care ii va taia Hercule in ordinea corecta). Daca nu exista solutie afisati -1.
Restricţii
- 1 ≤ T ≤ 10.000
- 1 ≤ K ≤ 1.000.000.000
- Orice solutie corecta va fi acceptata
Exemplu
hercule.in | hercule.out |
---|---|
3 7 11 10 | 3 1 2 3 4 1 2 3 4 -1 |