힙들의 힙
시간 제한2초메모리 제한512 MB
k를 1부터 n-1까지 각각에 대해 배열을 k진 힙으로 보고 부모보다 작은 값을 가진 노드의 수를 센다.
문제
n개의 정수로 이루어진 수열 이 주어진다. 이 수열을 그대로 k진 힙의 노드 값으로 놓고, 최소 힙 성질을 깨뜨리는 노드가 몇 개인지 센다.
k진 힙은 내부 노드가 자식을 최대 k개까지 가지는 루트 있는 트리다. 노드 번호는 1번부터 n번까지이고 1번이 루트다. v번 노드는 번, 번, , 번 노드를 자식으로 가진다. 번호가 n보다 큰 자식은 없는 것으로 본다. 그래서 마지막 내부 노드만 자식을 k개보다 적게 가질 수 있다.
루트가 아닌 노드 v의 부모를 라 하자. 이면 v는 최소 힙 성질을 깨뜨리는 노드다. 각각에 대해 이런 노드가 몇 개인지 구하시오.
입력
첫째 줄에 정수 n이 주어진다. ()
둘째 줄에 수열을 이루는 n개의 정수 이 공백으로 구분되어 주어진다. ()
출력
개의 정수를 한 줄에 공백 하나로 구분해 출력한다. 번째 수는 진 힙에서 최소 힙 성질을 깨뜨리는 노드의 개수다. 이면 해당하는 k가 없으므로 아무것도 출력하지 않는다.
힌트
아래 그림은 이고 수열이 일 때 인 힙이다. 빨간 노드가 최소 힙 성질을 깨뜨린다.
