Legendarul vrăjitor Merlin se distrează în laboratorul său. El are N
poțiuni magice (etichetate cu 1
, 2
, …, N
) aranjate pe o singură linie într-o ordine dată. El dorește să le aranjeze în ordine crescătoare. Se va muta o singură poțiune la un moment dat. Prima poțiune mutată va fi cea etichetată cu 1
, apoi cea etichetată cu 2
și așa mai departe. Bineînțeles, pentru a rezolva problema, Merlin va apela la magie. Fiecare poțiune poate fi mutată folosind una sau mai multe vrăji, trecând prin una sau mai multe poziții intermediare. Mutând o poțiune de la poziția I
în poziția J
, vraja va consuma (I-J)
2
unități de energie. De exemplu, dacă există șapte poțiuni aranjate astfel 1, 7, 3, 4, 5, 2, 6
și Merlin mută poțiunea (etichetată cu 2
) de la cea de-a șasea poziție la a doua poziție atunci noua aranjare va fi 1, 2, 7, 3, 4, 5, 6
cu (6-2)
2
unități de energie consumate.
Înainte de a începe distracția, Merlin a stabilit două criterii:
1. El nu dorește să fie prea obosit la sfârșitul zilei, de aceea nu dorește să consume mai mult de E
unități de energie.
2. De asemenea el se plictisește repede, de aceea el dorește să rezolve problema cu un număr minim de vrăji.
Cerința
Calculați numărul minim de vrăji pe care le poate folosi Merlin pentru a rezolva problema.
Date de intrare
Fișierul de intrare doubletrouble.in
conține pe prima linie două numere întregi pozitive N
și E
separate printr-un spațiu iar pe cea de-a doua linie N
numere întregi pozitive separate prin câte un spațiu, cel de-al K
-lea număr reprezentând eticheta poțiunii de pe poziția K
, 1 ≤ K ≤ N
.
Date de ieșire
Fișierul de ieșire doubletrouble.out
conține un singur număr întreg ce reprezintă numărul minim de vrăji folosite de Merlin, sau -1
dacă nu există soluție.
Restricții și precizări
1 ≤ N ≤ 10
5
1 ≤ E ≤ 10
15
- Pentru
20
de puncte,0 < N ≤ 300
- Pentru
30
de puncte,300 < N ≤ 6000
- Pentru
20
de puncte,6000 < N ≤ 30000
- Pentru
30
de puncte,30000 < N ≤ 100000
Exemplu:
doubletrouble.in
5 6 2 3 5 1 4
doubletrouble.out
3
Explicație
2 3 5 1 4 --> 2 3 1 5 4 --> 1 2 3 5 4 --> 1 2 3 5 4 --> 1 2 3 4 5
A fost folosit un număr minim de trei vrăji. Folosind primele două vrăji, cu 12
și 22
unități de energie, poțiunea 1
a fost mutată în prima poziție. Folosind cea de-a treia vrajă, cu 12
unități de energie, poțiunea 4
a fost mutată în cea de-a patra poziție. Energie totală consumată: 12 + 22 + 12 = 6
.