Fişierul intrare/ieşire:hercule.in, hercule.outSursăAlgoritmiada 2015 Runda Finala
AutorEugenie Daniel PosdarascuAdăugată deeudanipEugenie Daniel Posdarascu eudanip
Timp execuţie pe test0.3 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultateN/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.inhercule.out
3
7
11
10
3
1 2 3
4
1 2 3 4
-1
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?