시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 1024 MB | 101 | 22 | 19 | 26.761% |
한과영 학생들이 정보과학2 시험을 치기 위해 일렬로 앉아 있다. 각 학생들은 $1$반에서 $N$반 중 하나의 반에 소속되어 있다. 안타깝게도, 같은 반 학생끼리는 서로 너무 가까이 앉아 있다면 치팅을 할 수도 있다.
$N$개의 양의 정수 $K_1$, $K_2$, $\cdots$, $K_N$이 주어진다. $K_i$는 $i$반에 속한 학생의 수를 의미한다. 당신은 학생들을 잘 정렬해서 임의의 두 같은 반 학생들 사이의 거리의 최솟값을 최대화하려고 한다. 조건을 만족하는 학생 정렬 방법을 찾아보자. 정확히는, $i$번째 원소가 왼쪽에서 $i$번째로 앉게 되는 학생의 반 번호를 나타내는 수열 $X$를 찾아보자.
예를 들어, $N=3$이고 $K_1=1,K_2=2,K_3=3$인 경우를 살펴보자. 이는 $1$반 학생이 $1$명, $2$반 학생이 $2$명, $3$반 학생이 $3$명 있다는 뜻이다.
이 경우 $X=[3, 2, 3, 1, 3, 2]$은 하나의 답이 될 수 있다. $X_i = X_j$를 만족하는 두 정수 $i$, $j$에 대해 $|i-j|$의 최솟값이 $2$이기 때문에, 임의의 두 같은 반 학생들 사이의 거리의 최솟값은 $2$이다. 이 값이 $2$보다 큰 정렬 방법은 존재하지 않는다는 것을 증명할 수 있다.
첫 번째 줄에 정수 $N$이 주어진다.
두 번째 줄에 $N$개의 정수 $K_1$, $K_2$, $\cdots$, $K_N$이 주어진다.
조건을 만족하는 수열 $X$에 대해 $\mathrm{sum}(K)$개의 정수 $X_1, X_2, \cdots, X_{\mathrm{sum}(K)}$을 출력한다.
답이 여러 개 존재한다면 아무거나 출력해도 상관없다.
3 2 2 2
1 2 3 1 2 3
3 1 2 3
3 2 3 1 3 2
High School > 한국과학영재학교 > 2022 Fall CS2 Final Mock Exam F번