본문으로 이동
코드패스 by Devin.KR

문제 5671 · 메가 I

폭염 코스 구역

인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms / 테스트 (언어별 보정은 아래 표)메모리: 측정하지 않음(브라우저 채점)0000.00%

문제

마라톤 대회 조직위원회는 N개의 체크포인트(1번부터 N번)와 이들 사이에 놓을 수 있는 M개의 후보 구간을 가지고 있다. 후보 구간은 양방향이고 길이가 양의 정수이다. 양 끝이 같은 체크포인트인 구간이 있을 수도 있고, 같은 두 체크포인트 사이에 여러 구간이 있을 수도 있다. 폭염 대응 규칙에 따라 그날의 허용 길이 X가 정해지면 길이가 X 이하인 구간만 코스로 쓸 수 있다. 쓸 수 있는 구간만 따라 서로 오갈 수 있는 체크포인트들은 하나의 구역을 이룬다. 구간이 하나도 닿지 않는 체크포인트도 그 하나만으로 하나의 구역이다. 위원회는 각 구역 안의 모든 체크포인트가 서로 연결되도록 쓸 수 있는 구간 중 일부를 골라 코스로 확정하되, 고른 구간의 길이 합이 최소가 되게 한다. 즉 쓸 수 있는 구간으로 이루어진 그래프의 최소 신장 숲을 만든다. Q개의 허용 길이 X가 주어질 때, 각각에 대해 구역의 수, 최소 신장 숲에 쓰인 구간의 길이 총합, 가장 큰 구역에 속한 체크포인트의 수를 구하시오. 각 질문은 서로 독립이며, 길이가 같은 구간이 여럿이어도 총합은 하나로 정해진다.

입력

첫 줄에 N, M, Q 가 공백으로 구분되어 주어진다. 1 ≤ N ≤ 20000, 0 ≤ M ≤ 14000, 1 ≤ Q ≤ 10000 이다. 이어서 M개의 줄에 구간의 양 끝 체크포인트 번호 u, v (1 ≤ u, v ≤ N)와 길이 w (1 ≤ w ≤ 10^6)가 주어진다. 이어서 Q개의 줄에 허용 길이 X (0 ≤ X ≤ 10^6)가 하나씩 주어진다. 모든 값은 정수이다.

출력

각 질문마다 한 줄에 '구역의 수', '길이 총합', '가장 큰 구역의 크기'를 공백으로 구분하여 질문 순서대로 출력한다.

예제 입력 1

5 5 4
1 2 3
2 3 5
1 3 4
4 5 2
3 4 9
1
3
8
10

예제 출력 1

5 0 1
3 5 2
2 9 3
1 18 5

예제 입력 2

1 0 2
0
5

예제 출력 2

1 0 1
1 0 1

예제 입력 3

3 3 2
1 1 1
1 2 7
1 2 7
7
6

예제 출력 3

2 7 2
3 0 1
힌트 펼치기
  • 길이 X 이하의 구간으로 만든 최소 신장 숲은 크루스칼 알고리즘이 길이순으로 채택한 간선의 접두부와 같다.
  • 채택된 간선마다 누적 길이와 지금까지의 최대 구역 크기를 기록해 두고, 질문마다 이분 탐색으로 채택된 간선 수를 구한다.

출처: Devin.KR 자체 제작

알고리즘 분류최소 신장 트리유니온 파인드이분 탐색

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

Python 기본 시간 제한 = 문제 시간 제한 × 3 + 2초. 문제별 예외는 아래 표에 반영됩니다. 표준 라이브러리만 지원합니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      javascript사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름)1000ms / 테스트측정하지 않음(브라우저 채점)
      pythonPyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음(브라우저 채점)