| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 4 초 | 2048 MB | 132 | 29 | 27 | 27.273% |
KOI 도시는 $N$개의 교차로와 $M$개의 양방향 도로로 이루어져 있으며, 임의의 서로 다른 두 교차로를 도로만을 사용하여 오갈 수 있다. 같은 두 교차로를 잇는 양방향 도로가 2개 이상 있을 수도 있다.
각각의 교차로에는 0ドル$부터 $N-1$까지의 서로 다른 번호가 붙어 있고, 각각의 양방향 도로에는 0ドル$부터 $M-1$까지의 서로 다른 번호가 붙어 있다.
길이가 $N$인 정수 배열 $a[0],ドル $a[1],ドル $\cdots,ドル $a[N-1]$이 아래 조건을 만족한다면, $a$는 굿 넘버링이다.
길이가 $N$인 정수 배열 $a[0],ドル $a[1],ドル $\cdots,ドル $a[N-1]$의 다양성은 $a[u] \neq a[v]$이면서 0ドル \leq u < v \leq N-1$을 만족하는 $(u, v)$ 쌍의 개수이다.
도로망 구조가 주어졌을 때, 모든 굿 넘버링 중 다양성의 최댓값을 구하는 프로그램을 작성하라.
다음 함수를 구현해야 한다:
long long max_diversity(int N, int M, vector<int> U, vector<int> V)
제출하는 소스 코드의 어느 부분에서도 입출력 함수를 실행해서는 안 된다.
$N = 5,ドル $M = 5,ドル $U= [0, 0, 1, 1, 2],ドル $[1, 2, 2, 3, 4]$인 경우를 생각해 보자.
그레이더는 다음과 같이 함수를 호출한다.
$a = [2, 1, 1, 3, 1]$는 굿 넘버링이 아니다. $u_0 = 0, u_1 = 1, u_2 = 3$일 때, $a[u_0] = 2,ドル $a[u_1] = 1,ドル $a[u_2] = 3$이므로, $a[u_0] \le a[u_1] \le a[u_2]$와 $a[u_0] \ge a[u_1] \ge a[u_2]$ 모두 만족하지 않기 때문이다.
$[1, 1, 1, 1, 1]$는 굿 넘버링이고, 그 다양성은 0이다.
$[2, 2, 2, 3, 0]$는 굿 넘버링이고, 그 다양성은 7이다.
이외에도 다양한 굿 넘버링이 있을 수 있다. 위와 같은 방식으로 모든 굿 넘버링의 다양성을 구하면, 그 중 최댓값은 7이다. 따라서, 함수는 7을 반환해야 한다.
Sample grader는 아래와 같은 형식으로 입력을 받는다.
Sample grader는 다음을 출력한다.
max_diversity의 반환값Sample grader는 실제 채점에서 사용하는 그레이더와 다를 수 있음에 유의하라.
Olympiad > 국제정보올림피아드 대표학생 선발고사 > 2025 > 2차 선발고사 3번
C++17, C++20, C++23, C++26, C++17 (Clang), C++20 (Clang)