시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
7 초 (추가 시간 없음) | 1024 MB | 201 | 47 | 33 | 25.781% |
KOI 도시는 $N$ 개의 교차로와 $N - 1$ 개의 양방향 도로로 이루어져 있으며, 임의의 서로 다른 두 교차로를 도로만을 사용하여 오갈 수 있다. 즉, 도시의 도로망은 트리 구조를 이룬다. 도로는 2차원 평면 상에 있으며, 두 도로가 끝점을 제외한 위치에서 교차하지 않는다. 각 도로에는 $0$ 이상의 정수 가중치가 존재하며, 이 가중치는 각 도로를 이용하는 데 걸리는 시간을 의미한다.
KOI 도시는 몇십년 전까지만 하여도 작은 마을이었지만, 사람이 유입되고 크기가 커지면서 급격히 팽창하기 시작하였다. 급격한 팽창 과정에서 시장은 행정 편의를 위해 교차로에 $1$ 이상 $N$ 이하의 번호를 매겼다. 이 때 번호 시스템은 다음과 같은 성질을 만족한다.
KOI 도시에 많은 사람들이 유입되면서, 교통 체증 문제가 심화되었다. 시장은 이를 해결하기 위해 교통 인프라가 가장 빈약한 도시들을 외곽 순환 도로로 이었다. KOI 도시에 있는 모든 교차로 중, 단 $1$개의 도로와 인접한 교차로들의 번호를 증가하는 순서대로 나열한 리스트를 ${v_1, v_2, \dots , v_k}$ 라고 하자. 시장은, 모든 $1 ≤ i ≤ k$ 에 대해서, $v_i$번 교차로와 $v_{(i \pmod k)+1}$번 교차로를 잇는 양방향 도로를 건설하였다. 각 도로의 가중치는 $0$ 이상의 정수 $w_i$ 이며, 이는 입력으로 주어진다. 번호 시스템의 특성상, 두 도로가 끝점을 제외한 위치에서 교차하지 않게끔 외곽 순환 도로를 이을 수 있음을 관찰하면 좋다.
당신은 KOI 도시의 내비게이션 시스템을 구축하려고 한다. 내비게이션 시스템은, $Q$개의 질의 $u$, $v$가 주어졌을 때, $u$번 교차로에서 $v$번 교차로로 이동하는 데 걸리는 최소 시간을 출력해야 한다. $u$번 교차로에서 $v$번 교차로로 이동하는 데 걸리는 최소 시간은, $u$번 교차로와 $v$번 교차로를 잇는 경로들 중 가중치 합의 최솟값과 같다.
도로망 구조가 주어졌을 때, $Q$개의 질의를 효율적으로 응답하는 프로그램을 작성하여라.
첫 번째 줄에 KOI 도시의 교차로 수 $N$이 주어진다.
이후 $N - 1$개의 줄이 주어진다. 이 중 $i$번째 줄에는, 두 정수 $p_i$, $c_i$ 가 공백으로 구분되어 주어진다. 이는, 교차로 $p_i$와 교차로 $i + 1$를 잇는 가중치 $c_i$의 양방향 도로가 존재함을 뜻한다.
외곽 순환 도로 건설 전 $1$개의 도로와 인접한 교차로의 수를 $k$라고 하고, $1$개의 도로와 인접한 교차로들의 번호를 증가하는 순서대로 나열한 리스트를 ${v_1, v_2, \dots , v_k}$ 라고 하자. 다음 줄에, $k$개의 정수 $w_1, w_2, \dots , w_k$가 공백으로 구분되어 주어진다. 이는, 외곽 순환 도로의 $v_i$번 교차로와 $v_{i \pmod k+1}$번 교차로를 잇는 양방향 도로의 가중치가 $w_i$임을 뜻한다.
다음 줄에 질의의 수 $Q$가 주어진다.
이후 $Q$개의 줄에 최소 시간을 알고 싶은 두 교차로의 번호 $u$, $v$가 주어진다.
$Q$개의 줄에 걸쳐, $u$번 교차로와 $v$번 교차로를 잇는 경로들 중 가중치 합의 최솟값을 하나의 정수로 출력한다.
번호 | 배점 | 제한 |
---|---|---|
1 | 6 | 모든 쿼리에 대해 $u = 1$. |
2 | 8 | 모든 $1 ≤ i ≤ N - 1$에 대해 $p_i = 1$. |
3 | 5 | 모든 $1 ≤ i ≤ N - 1$에 대해 $c_i ≤ 10^6$, 모든 $1 ≤ i ≤ k$에 대해 $w_i = 10^{12}$. |
4 | 15 | 모든 $1 ≤ i ≤ k$에 대해 $w_i = 0$. |
5 | 57 | $4$개 이상의 도로와 인접한 교차로가 존재하지 않음. |
6 | 9 | 추가 제약 조건 없음. |
4 1 9 1 8 1 0 9 9 9 6 1 2 1 3 1 4 2 3 2 4 3 4
9 8 0 9 9 8
위 지도는 예제 1에 대응된다. 예제 1은 부분문제 2, 5, 6의 조건을 만족한다.
11 1 9 1 8 3 0 4 7 4 1 3 6 1 0 8 7 8 1 10 6 0 0 0 0 0 0 21 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 7 1 8 2 9 3 10 4 11 5 1 6 2 7 3 8 4 9 5 10 6 11
7 8 8 7 7 7 0 7 1 7 7 7 1 7 0 7 0 8 1 6 0
11 1 9 1 8 3 0 4 7 4 1 3 6 1 0 8 7 8 1 10 6 1000000000000 1000000000000 1000000000000 1000000000000 1000000000000 1000000000000 21 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 7 1 8 2 9 3 10 4 11 5 1 6 2 7 3 8 4 9 5 10 6 11
9 8 8 15 9 14 0 7 1 7 14 9 15 9 22 9 23 8 15 16 16
위 지도는 예제 2와 예제 3에 대응된다. 예제 2의 경우, $w_i = 0$을 만족하며, 예제 3의 경우, $w_i = 10^{12}$를 만족한다. 예제 2는 부분문제 4, 5, 6의 조건을 만족하고, 예제 3은 부분문제 3, 5, 6의 조건을 만족한다.
Olympiad > 한국정보올림피아드 > KOI 2022 2차대회 > 고등부 4번
Camp > Petrozavodsk Programming Camp > Winter 2023 > Day 4: KAIST+KOI Contest, Grand Prix of Korea A번