| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 156 | 105 | 92 | 67.647% |
크기가 1ドル,ドル 2ドル,ドル $\cdots,ドル $N$인 피자가 각각 $a_1,ドル $a_2,ドル $\cdots,ドル $a_N$개씩 있다. 이 피자들을 중심이 서로 겹치도록 쌓으려고 한다.
이때 가능한 모든 순서에 대해, 위에서 내려다봤을 때 보이는 피자의 개수의 합을 구해보자. 어떤 피자가 "보인다"는 것은, 그 피자 위에 쌓인 모든 피자들보다 크다는 것이다.
크기가 같은 피자들은 구분되지 않는다. 즉 크기가 같은 피자들끼리의 순서는 고려하지 않는다.
입력은 다음과 같이 주어진다.
$N$
$a_1$ $a_2$ $\cdots$ $a_N$
첫째 줄에 가장 큰 피자의 크기 $N$이 주어진다.
다음 줄에는 크기가 $i$인 피자의 개수 $a_i$가 공백으로 구분되어 주어진다.
가능한 모든 순서에 대해, 위에서 내려다봤을 때 보이는 피자의 개수의 합을 1ドル,000円,000円,007円$으로 나눈 나머지를 출력한다.
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 10 | $\sum a_i \leq 10$ |
| 2 | 30 | $a_1, a_2, \cdots , a_N= 1$ |
| 3 | 30 | $a_1, a_2, \cdots, a_{(N-1)} = 1$ |
| 4 | 30 | 추가 제약 조건 없음 |
2 1 2
4
3 1 1 1
11
1번 예제에서 가능한 모든 순서와 각각의 경우에서 보이는 피자의 수는 다음과 같다. 위에 있는 피자부터 순서대로 표기하였다.
보이는 피자 개수의 합은 2ドル+1+1=4$개이다.
University > 연세대학교 > 2023 연세대학교 프로그래밍 경진대회 F번