더블트러블
시간 제한1초메모리 제한512 MB
한 줄에 놓인 N개의 물약을 1번부터 N번까지 차례로 옮겨 오름차순으로 정렬합니다. 한 번 옮길 때마다 이동 거리의 제곱만큼 에너지가 들며, 총 에너지는 E를 넘지 않으면서 주문 횟수를 최소로 합니다.
문제
전설의 마법사 멀린이 실험실에서 즐겁게 놀고 있다. 그에게는 한 줄로 놓인 N개의 마법 물약(번호 1, 2, ..., N)이 있다. 그는 이 물약들을 오름차순으로 다시 배열하려 한다. 물약은 한 번에 하나씩 옮긴다. 가장 먼저 옮기는 것은 번호 1의 물약이고, 그다음은 번호 2의 물약이며, 이런 식으로 진행한다. 각 물약은 하나 이상의 주문을 사용해 옮길 수 있고, 그 과정에서 중간 위치를 하나 이상 거칠 수 있다. 위치 I에서 위치 J로 물약을 옮기는 주문은 의 에너지를 소모한다. 예를 들어 물약이 1, 7, 3, 4, 5, 2, 6 순서로 놓여 있고 멀린이 번호 2의 물약을 6번째 위치에서 2번째 위치로 옮기면, 새 배열은 1, 2, 7, 3, 4, 5, 6이 되고 의 에너지가 소모된다. 멀린에게는 두 가지 기준이 있다. 첫째, 하루가 끝날 때 지치지 않으려고 E 에너지 단위를 넘게 쓰지 않는다. 둘째, 금방 지루해지므로 최소한의 주문 횟수로 문제를 풀고 싶어 한다. 멀린이 문제를 푸는 데 사용할 수 있는 주문의 최소 횟수를 구하라.
입력
첫 줄에 공백으로 구분된 두 양의 정수 N과 E가 주어진다. 둘째 줄에는 공백으로 구분된 N개의 양의 정수가 주어지며, K번째 정수는 K번째 위치에 있는 물약의 번호이다. 1 ≤ K ≤ N.
출력
멀린이 사용하는 주문의 최소 횟수를 정수 하나로 출력한다. 풀 수 없는 경우 -1을 출력한다.
제한
1 ≤ N ≤ ; 1 ≤ E ≤
힌트
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. 최소 세 번의 주문을 사용한다. 처음 두 번의 주문은 각각 과 의 에너지를 쓰며, 이 두 번으로 번호 1의 물약을 첫 번째 위치로 옮긴다. 세 번째 주문은 의 에너지를 쓰며, 번호 4의 물약을 네 번째 위치로 옮긴다. 총 소모 에너지는 이다.