RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
A00023

알파카컵 4회: F - 알파카와 줄어드는 키 줄 세우기

Platinum II 플래티넘 II
난이도
2s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
6
제출 수
0.0%
정답률
레이팅

의견: 0

설명

알파카 목장에 \(N\)마리의 알파카가 한 줄로 서 있다. 왼쪽부터 \(i\)번째 알파카의 키는 \(Arr_i\)이다.

목장 주인은 사진을 찍으려고 하는데, 키가 들쭉날쭉해서 영 마음에 들지 않는다. 그래서 줄에서 알파카 몇 마리만 골라 따로 세워, 왼쪽에서 오른쪽으로 갈수록 키가 점점 작아지는 예쁜 내리막 줄을 만들고 싶어 한다.

단, 알파카들은 자존심이 세서 원래 서 있던 순서(왼쪽→오른쪽)는 절대 바꾸지 않는다. 즉 골라낸 알파카들은 원래 줄에서의 순서를 그대로 유지해야 한다.

주인은 정확히 \(K\)마리를 골라 다음을 만족시키고 싶다.

  • 고른 알파카들의 원래 위치가 \(i_1 < i_2 < \dots < i_K\) 이고,
  • 그 키가 \(Arr_{i_1} > Arr_{i_2} > \dots > Arr_{i_K}\) 으로 순서대로 점점 작아진다.

이런 식으로 \(K\)마리를 골라 내리막 줄을 만드는 방법이 총 몇 가지인지 궁금하다. 같은 키여도 자리가 다르면 다른 알파카이므로, 키가 같은 두 마리는 한 줄에 함께 설 수 없다(키가 엄격히 작아져야 한다).

경우의 수가 어마어마하게 클 수 있으니, 답을 \(10^9 + 7\)로 나눈 나머지를 출력하여라.

제약
  • 주어지는 모든 수는 정수이다.
  • \(2 \le K \le 50\)
  • \(K \le N \le 10^5\)
  • \(-10^9 \le Arr_i \le 10^9\)
입력 형식

첫째 줄에 두 정수 \(N\), \(K\)가 공백으로 구분되어 주어진다.

둘째 줄에 알파카들의 키 \(Arr_1, Arr_2, \dots, Arr_N\)이 공백으로 구분되어 주어진다.

출력 형식

조건을 만족하도록 \(K\)마리를 고르는 방법의 수를 \(10^9+7\)로 나눈 나머지를 첫째 줄에 출력한다.

서브태스크
서브태스크점수설명

Subtask 1

10점

\(K = 2\)

Subtask 2

25점

\(K = 3\)

Subtask 3

25점

\(K \le 50,\ N \le 2\,000\)

Subtask 4

40점

추가 제한 없음

예제 1
입력
5 3
5 4 3 2 1
출력
10
설명

다섯 마리가 이미 완벽한 내리막이라, 그중 \(3\)마리를 고르는 모든 경우 \(\binom{5}{3}=10\)가지가 전부 조건을 만족한다.

예제 2
입력
4 2
1 3 2 4
출력
1
설명

키가 큰 앞 알파카 뒤에 더 작은 알파카가 오는 쌍은 \((3,2)\) 하나뿐이다.

문제 정보

rip 작성

출처 알파카컵 4회

평가 및 의견

알파카컵 4회: F - 알파카와 줄어드는 키 줄 세우기

개요
출제자 난이도 Platinum II 플래티넘 II 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

알파카컵 4회: F - 알파카와 줄어드는 키 줄 세우기

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8