순열에서 최대 5개의 지워진 자리를 채워 i<j이고 A_i<A_j인 쌍의 수가 S가 되는 경우의 수를 센다.
어려움8동적 계획법조합론비트 연산아직 제출이 없습니다시간 제한2초메모리 제한512 MB알고리즘 캠프에 참가한 사람들은 수열을 좋아한다. 저마다 수열을 얼마나 좋아하는지 재는 함수가 하나씩 있다.
캠프 강사인 성관이가 가장 좋아하는 수열은 오름차순으로 정렬된 수열이다. 성관이는 수열 A를 보면 i<j이면서 Ai<Aj인 쌍 (i,j)의 개수를 곧바로 센다. 이 값이 성관이가 그 수열에 매기는 점수다.
홍준이는 아침에 오자마자 1부터 N까지의 수로 이루어진 순열을 칠판에 적어 두었다. 성관이는 강의실에 들어서면서 칠판을 보았고, 그 자리에서 적혀 있는 순열의 점수를 계산했다. 점심을 먹으면서 성관이는 그 순열을 다시 떠올려 보려고 했지만 점수만 기억날 뿐 순열은 기억나지 않았다.
점심을 먹고 강의실로 돌아온 성관이가 칠판을 다시 보니 순열은 그대로 적혀 있었지만 일부 수가 지워져 있었다. 성관이는 아침에 계산한 점수를 이용해 홍준이가 적은 순열을 되살려 보려고 한다.
성관이가 아침에 계산한 점수와 지금 칠판에 남아 있는 순열이 주어질 때, 지워진 자리를 채워서 점수가 정확히 그 값이 되게 만드는 방법의 수를 구하는 프로그램을 작성하시오.
첫째 줄에 칠판에 적혀 있는 순열의 크기 N과 아침에 계산한 점수 S가 주어진다. (1≤N≤100, 0≤S≤109)
둘째 줄에 칠판에 적혀 있는 순열이 순서대로 주어진다. 지워진 자리는 0으로 주어진다.
칠판에 적혀 있던 순열은 1 이상 N 이하의 수가 한 번씩 나오는 순열이고, 지워진 자리는 5개 이하다.
첫째 줄에 점수가 S가 되도록 순열을 채우는 방법의 수를 출력한다.