합이 x인 양의 추가 점수를 오름차순으로 발표할 때 매번 선두가 바뀌어야 한다는 조건에서 만들 수 있는 서로 다른 최종 순위의 수를 센다.
어려움9동적 계획법조합론비트 연산정렬아직 제출이 없습니다시간 제한2초메모리 제한512 MB가수 n명이 겨루는 노래 대결을 보고 있다. 마지막 라운드가 끝났고, 지금 i번 가수의 점수는 pi이다. 현재 점수가 같은 가수는 없다.
이제 심사위원이 추가 점수를 나눠 준다. i번 가수는 qi≥1점을 받고, 심사위원은 q1+q2+⋯+qn=x를 지켜야 한다.
심사위원은 qi를 작은 값부터 큰 값 순서로 하나씩 발표한다. 같은 점수를 받은 가수가 여럿이면 그중 pi가 작은 가수부터 발표한다. 자기 qi가 발표된 가수의 총점은 그 자리에서 pi+qi가 되고, 순위도 곧바로 갱신된다.
발표가 한 번 끝날 때마다 총점이 가장 높은 가수가 한 명뿐이고 그 가수가 직전 1위와 다르면, 이 발표 전체를 흥겨운 발표라고 한다. 첫 발표는 아직 아무것도 발표하지 않은 시점의 순위와 비교한다.
최종 순위는 최종 총점이 높은 가수부터 낮은 가수까지 나열한 것이다. 흥겨운 발표가 되도록 점수를 나눠 줄 때 나오는 서로 다른 최종 순위가 몇 가지인지 구하라.
첫째 줄에 정수 n과 x가 주어진다. (1≤n≤12, 1≤x≤700)
둘째 줄에 정수 p1,p2,…,pn이 주어진다. (1≤pi≤700) pi는 모두 다르다.
흥겨운 발표로 만들 수 있는 서로 다른 최종 순위의 개수를 출력한다.
첫 번째 예제에는 점수가 각각 3점, 1점, 4점인 가수 A, B, C가 있고, 심사위원은 12점을 나눠 준다.
심사위원이 q=[2,7,3]을 골랐다고 하자. 발표는 q가 작은 순서로 진행된다.
이 발표는 흥겨운 발표다.
q=[3,3,6]은 흥겨운 발표가 아니다. 첫 발표 뒤에 1위가 두 명이기 때문이다. 3점을 받은 두 가수 중 pi가 작은 B를 먼저 발표한다. q=[6,5,1]도 흥겨운 발표가 아니다. 첫 발표 뒤에도 1위가 그대로이기 때문이다.
1위부터 꼴찌까지 적었을 때 나올 수 있는 최종 순위는 세 가지다.
B, C, A는 q=[2,8,2]와 q=[2,7,3] 두 가지로 만들어지지만 한 번만 센다.