아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

데이터 만들기 8

시간 제한1초메모리 제한128 MB

요약
정해진 그래프를 그대로 출력한다. 꼭짓점 98개, 간선 1501개이며 완전 이분 그래프의 간선을 지정된 순서로 인쇄한다.
난이도

쉬움10점 중 2점

유형
그래프, 구현, 완전 탐색, 시뮬레이션
정답자
아직 제출이 없습니다

문제

프로그래밍 대회는 많다. 대회에 쓸 좋은 문제를 만드는 일은 어렵고, 그중에서도 테스트 데이터를 만드는 일이 가장 어렵다. 좋은 테스트 데이터는 문제의 의도에 맞게 짠 코드와 그렇지 않은 코드를 구별해 내야 한다. 대부분의 입력에서는 맞지만 특별한 입력에서만 틀리는 코드도 걸러 내야 한다.

이 문제는 풀이 프로그램을 제출하는 문제가 아니다. 테스트 데이터를 만드는 문제이다.

상근이는 그래프 문제 미스테리의 데이터 하나를 만들어야 한다. 데이터 XX는 다음을 만족해야 한다.

  1. 코드 A가 XX를 처리할 때 시간 초과(TLE)가 나면 안 된다.
  2. 코드 B가 XX를 처리할 때 시간 초과(TLE)가 나야 한다.

데이터는 작을수록 좋으므로 정수를 최대 TT개만 담아야 한다. T=3004T = 3004이다.

미스테리는 정점 VV개, 간선 EE개인 무향 그래프가 주어질 때, 인접한 정점의 번호가 서로 다르도록 각 정점에 00 이상 X−1X-1 이하의 정수를 붙이는 문제이다. 가능한 가장 작은 XX를 구한다.

미스테리 입력 형식은 다음과 같다.

첫째 줄에 VV와 EE가 있다. 다음 EE개의 줄에 무향 간선 aa, bb가 있다.

입력은 다음도 지켜야 한다.

  • 70<V<100070 < V < 1000
  • 1500<E<1061500 < E < 10^6
  • 모든 간선 (a,b)(a, b)에 대해 a≠ba \neq b, 0≤a<V0 \leq a < V, 0≤b<V0 \leq b < V이고 같은 간선은 한 번만 적는다.

코드 A는 RecursiveBacktracking이고 코드 B는 Gamble2이다. 두 코드는 힌트에 있다.

두 코드에는 counter 변수가 있다. 이 값이 1 000 0001\,000\,000을 넘으면 TLE이다.

조건을 만족하는 그래프는 여러 개일 수 있다. 그중 아래 그래프만 출력한다.

  • V=98V = 98, E=1501E = 1501
  • 정점 00부터 1818까지가 한쪽, 정점 1919부터 9797까지가 다른 쪽인 완전 이분 그래프이다.
  • 간선은 ii를 00부터 1818까지 올리고, 각 ii마다 jj를 1919부터 9797까지 올리며 (i,j)(i, j)를 한 줄에 하나씩 출력한다.

이 그래프는 정수 2+2×1501=30042 + 2 \times 1501 = 3004개를 담는다. RecursiveBacktracking은 이 그래프에서 TLE가 나지 않는다. Gamble2는 counter를 1 000 0011\,000\,001로 두므로 항상 TLE이다.

위의 그래프를 출력하는 프로그램을 작성하시오.

입력

이 문제는 입력이 없다.

출력

위에서 정한 그래프를 미스테리 입력 형식으로 출력한다.

첫째 줄에 9898과 15011501을 공백으로 구분해 출력한다. 다음 15011501개의 줄에 간선의 두 정점을 공백으로 구분해 출력한다.

힌트

RecursiveBacktracking은 XX를 22부터 VV까지 올려 가며 첫 유효 색칠을 찾는다. 정점은 0,1,…,V−10, 1, \ldots, V-1 순서로 색을 붙인다. 정점 00의 색은 항상 00이다. 정점 uu에 색을 붙인 뒤, 아직 색이 없는 이웃을 보고 정점 u+1u+1에 쓸 수 있는 색을 00부터 X−1X-1까지 작은 것부터 시도한다. counter는 재귀 호출마다 11 늘고, 다음 정점의 이웃을 볼 때마다 11 는다. counter가 1 000 0001\,000\,000을 넘으면 TLE이다.

found = false
counter = 0
for X in 2 .. V:
    cur[0 .. V-1] = -1
    backtrack(0, 0)
    if found:
        break
if counter > 1000000:
    TLE
output X and cur

backtrack(u, label):
    if found:
        return
    counter += 1
    cur[u] = label
    if u == V-1:
        found = true
        return
    ok[0 .. X-1] = true
    for each neighbor v of vertex u+1:
        counter += 1
        if counter > 1000000:
            return
        if cur[v] != -1:
            ok[cur[v]] = false
    for j in 0 .. X-1:
        if ok[j]:
            backtrack(u+1, j)

Gamble2는 그래프와 관계없이 아래만 수행한다.

X = V
for i in 0 .. V-1:
    label[i] = i
counter = 1000001

따라서 Gamble2는 항상 TLE이다.

예제1

  1. 예제 1

    입력
    예상 출력
    98 1501
    0 19
    0 20
    0 21
    0 22
    0 23
    0 24
    0 25
    0 26
    0 27
    0 28
    0 29
    0 30
    0 31
    0 32
    0 33
    0 34
    0 35
    0 36
    0 37
    0 38
    0 39
    0 40
    0 41
    0 42
    0 43
    0 44
    0 45
    0 46
    0 47
    0 48
    0 49
    0 50
    0 51
    0 52
    0 53
    0 54
    0 55
    0 56
    0 57
    0 58
    0 59
    0 60
    0 61
    0 62
    0 63
    0 64
    0 65
    0 66
    0 67
    0 68
    0 69
    0 70
    0 71
    0 72
    0 73
    0 74
    0 75
    0 76
    0 77
    0 78
    0 79
    0 80
    0 81
    0 82
    0 83
    0 84
    0 85
    0 86
    0 87
    0 88
    0 89
    0 90
    0 91
    0 92
    0 93
    0 94
    0 95
    0 96
    0 97
    1 19
    1 20
    1 21
    1 22
    1 23
    1 24
    1 25
    1 26
    1 27
    1 28
    1 29
    1 30
    1 31
    1 32
    1 33
    1 34
    1 35
    1 36
    1 37
    1 38
    1 39
    1 40
    1 41
    1 42
    1 43
    1 44
    1 45
    1 46
    1 47
    1 48
    1 49
    1 50
    1 51
    1 52
    1 53
    1 54
    1 55
    1 56
    1 57
    1 58
    1 59
    1 60
    1 61
    1 62
    1 63
    1 64
    1 65
    1 66
    1 67
    1 68
    1 69
    1 70
    1 71
    1 72
    1 73
    1 74
    1 75
    1 76
    1 77
    1 78
    1 79
    1 80
    1 81
    1 82
    1 83
    1 84
    1 85
    1 86
    1 87
    1 88
    1 89
    1 90
    1 91
    1 92
    1 93
    1 94
    1 95
    1 96
    1 97
    2 19
    2 20
    2 21
    2 22
    2 23
    2 24
    2 25
    2 26
    2 27
    2 28
    2 29
    2 30
    2 31
    2 32
    2 33
    2 34
    2 35
    2 36
    2 37
    2 38
    2 39
    2 40
    2 41
    2 42
    2 43
    2 44
    2 45
    2 46
    2 47
    2 48
    2 49
    2 50
    2 51
    2 52
    2 53
    2 54
    2 55
    2 56
    2 57
    2 58
    2 59
    2 60
    2 61
    2 62
    2 63
    2 64
    2 65
    2 66
    2 67
    2 68
    2 69
    2 70
    2 71
    2 72
    2 73
    2 74
    2 75
    2 76
    2 77
    2 78
    2 79
    2 80
    2 81
    2 82
    2 83
    2 84
    2 85
    2 86
    2 87
    2 88
    2 89
    2 90
    2 91
    2 92
    2 93
    2 94
    2 95
    2 96
    2 97
    3 19
    3 20
    3 21
    3 22
    3 23
    3 24
    3 25
    3 26
    3 27
    3 28
    3 29
    3 30
    3 31
    3 32
    3 33
    3 34
    3 35
    3 36
    3 37
    3 38
    3 39
    3 40
    3 41
    3 42
    3 43
    3 44
    3 45
    3 46
    3 47
    3 48
    3 49
    3 50
    3 51
    3 52
    3 53
    3 54
    3 55
    3 56
    3 57
    3 58
    3 59
    3 60
    3 61
    3 62
    3 63
    3 64
    3 65
    3 66
    3 67
    3 68
    3 69
    3 70
    3 71
    3 72
    3 73
    3 74
    3 75
    3 76
    3 77
    3 78
    3 79
    3 80
    3 81
    3 82
    3 83
    3 84
    3 85
    3 86
    3 87
    3 88
    3 89
    3 90
    3 91
    3 92
    3 93
    3 94
    3 95
    3 96
    3 97
    4 19
    4 20
    4 21
    4 22
    4 23
    4 24
    4 25
    4 26
    4 27
    4 28
    4 29
    4 30
    4 31
    4 32
    4 33
    4 34
    4 35
    4 36
    4 37
    4 38
    4 39
    4 40
    4 41
    4 42
    4 43
    4 44
    4 45
    4 46
    4 47
    4 48
    4 49
    4 50
    4 51
    4 52
    4 53
    4 54
    4 55
    4 56
    4 57
    4 58
    4 59
    4 60
    4 61
    4 62
    4 63
    4 64
    4 65
    4 66
    4 67
    4 68
    4 69
    4 70
    4 71
    4 72
    4 73
    4 74
    4 75
    4 76
    4 77
    4 78
    4 79
    4 80
    4 81
    4 82
    4 83
    4 84
    4 85
    4 86
    4 87
    4 88
    4 89
    4 90
    4 91
    4 92
    4 93
    4 94
    4 95
    4 96
    4 97
    5 19
    5 20
    5 21
    5 22
    5 23
    5 24
    5 25
    5 26
    5 27
    5 28
    5 29
    5 30
    5 31
    5 32
    5 33
    5 34
    5 35
    5 36
    5 37
    5 38
    5 39
    5 40
    5 41
    5 42
    5 43
    5 44
    5 45
    5 46
    5 47
    5 48
    5 49
    5 50
    5 51
    5 52
    5 53
    5 54
    5 55
    5 56
    5 57
    5 58
    5 59
    5 60
    5 61
    5 62
    5 63
    5 64
    5 65
    5 66
    5 67
    5 68
    5 69
    5 70
    5 71
    5 72
    5 73
    5 74
    5 75
    5 76
    5 77
    5 78
    5 79
    5 80
    5 81
    5 82
    5 83
    5 84
    5 85
    5 86
    5 87
    5 88
    5 89
    5 90
    5 91
    5 92
    5 93
    5 94
    5 95
    5 96
    5 97
    6 19
    6 20
    6 21
    6 22
    6 23
    6 24
    6 25
    6 26
    6 27
    6 28
    6 29
    6 30
    6 31
    6 32
    6 33
    6 34
    6 35
    6 36
    6 37
    6 38
    6 39
    6 40
    6 41
    6 42
    6 43
    6 44
    6 45
    6 46
    6 47
    6 48
    6 49
    6 50
    6 51
    6 52
    6 53
    6 54
    6 55
    6 56
    6 57
    6 58
    6 59
    6 60
    6 61
    6 62
    6 63
    6 64
    6 65
    6 66
    6 67
    6 68
    6 69
    6 70
    6 71
    6 72
    6 73
    6 74
    6 75
    6 76
    6 77
    6 78
    6 79
    6 80
    6 81
    6 82
    6 83
    6 84
    6 85
    6 86
    6 87
    6 88
    6 89
    6 90
    6 91
    6 92
    6 93
    6 94
    6 95
    6 96
    6 97
    7 19
    7 20
    7 21
    7 22
    7 23
    7 24
    7 25
    7 26
    7 27
    7 28
    7 29
    7 30
    7 31
    7 32
    7 33
    7 34
    7 35
    7 36
    7 37
    7 38
    7 39
    7 40
    7 41
    7 42
    7 43
    7 44
    7 45
    7 46
    7 47
    7 48
    7 49
    7 50
    7 51
    7 52
    7 53
    7 54
    7 55
    7 56
    7 57
    7 58
    7 59
    7 60
    7 61
    7 62
    7 63
    7 64
    7 65
    7 66
    7 67
    7 68
    7 69
    7 70
    7 71
    7 72
    7 73
    7 74
    7 75
    7 76
    7 77
    7 78
    7 79
    7 80
    7 81
    7 82
    7 83
    7 84
    7 85
    7 86
    7 87
    7 88
    7 89
    7 90
    7 91
    7 92
    7 93
    7 94
    7 95
    7 96
    7 97
    8 19
    8 20
    8 21
    8 22
    8 23
    8 24
    8 25
    8 26
    8 27
    8 28
    8 29
    8 30
    8 31
    8 32
    8 33
    8 34
    8 35
    8 36
    8 37
    8 38
    8 39
    8 40
    8 41
    8 42
    8 43
    8 44
    8 45
    8 46
    8 47
    8 48
    8 49
    8 50
    8 51
    8 52
    8 53
    8 54
    8 55
    8 56
    8 57
    8 58
    8 59
    8 60
    8 61
    8 62
    8 63
    8 64
    8 65
    8 66
    8 67
    8 68
    8 69
    8 70
    8 71
    8 72
    8 73
    8 74
    8 75
    8 76
    8 77
    8 78
    8 79
    8 80
    8 81
    8 82
    8 83
    8 84
    8 85
    8 86
    8 87
    8 88
    8 89
    8 90
    8 91
    8 92
    8 93
    8 94
    8 95
    8 96
    8 97
    9 19
    9 20
    9 21
    9 22
    9 23
    9 24
    9 25
    9 26
    9 27
    9 28
    9 29
    9 30
    9 31
    9 32
    9 33
    9 34
    9 35
    9 36
    9 37
    9 38
    9 39
    9 40
    9 41
    9 42
    9 43
    9 44
    9 45
    9 46
    9 47
    9 48
    9 49
    9 50
    9 51
    9 52
    9 53
    9 54
    9 55
    9 56
    9 57
    9 58
    9 59
    9 60
    9 61
    9 62
    9 63
    9 64
    9 65
    9 66
    9 67
    9 68
    9 69
    9 70
    9 71
    9 72
    9 73
    9 74
    9 75
    9 76
    9 77
    9 78
    9 79
    9 80
    9 81
    9 82
    9 83
    9 84
    9 85
    9 86
    9 87
    9 88
    9 89
    9 90
    9 91
    9 92
    9 93
    9 94
    9 95
    9 96
    9 97
    10 19
    10 20
    10 21
    10 22
    10 23
    10 24
    10 25
    10 26
    10 27
    10 28
    10 29
    10 30
    10 31
    10 32
    10 33
    10 34
    10 35
    10 36
    10 37
    10 38
    10 39
    10 40
    10 41
    10 42
    10 43
    10 44
    10 45
    10 46
    10 47
    10 48
    10 49
    10 50
    10 51
    10 52
    10 53
    10 54
    10 55
    10 56
    10 57
    10 58
    10 59
    10 60
    10 61
    10 62
    10 63
    10 64
    10 65
    10 66
    10 67
    10 68
    10 69
    10 70
    10 71
    10 72
    10 73
    10 74
    10 75
    10 76
    10 77
    10 78
    10 79
    10 80
    10 81
    10 82
    10 83
    10 84
    10 85
    10 86
    10 87
    10 88
    10 89
    10 90
    10 91
    10 92
    10 93
    10 94
    10 95
    10 96
    10 97
    11 19
    11 20
    11 21
    11 22
    11 23
    11 24
    11 25
    11 26
    11 27
    11 28
    11 29
    11 30
    11 31
    11 32
    11 33
    11 34
    11 35
    11 36
    11 37
    11 38
    11 39
    11 40
    11 41
    11 42
    11 43
    11 44
    11 45
    11 46
    11 47
    11 48
    11 49
    11 50
    11 51
    11 52
    11 53
    11 54
    11 55
    11 56
    11 57
    11 58
    11 59
    11 60
    11 61
    11 62
    11 63
    11 64
    11 65
    11 66
    11 67
    11 68
    11 69
    11 70
    11 71
    11 72
    11 73
    11 74
    11 75
    11 76
    11 77
    11 78
    11 79
    11 80
    11 81
    11 82
    11 83
    11 84
    11 85
    11 86
    11 87
    11 88
    11 89
    11 90
    11 91
    11 92
    11 93
    11 94
    11 95
    11 96
    11 97
    12 19
    12 20
    12 21
    12 22
    12 23
    12 24
    12 25
    12 26
    12 27
    12 28
    12 29
    12 30
    12 31
    12 32
    12 33
    12 34
    12 35
    12 36
    12 37
    12 38
    12 39
    12 40
    12 41
    12 42
    12 43
    12 44
    12 45
    12 46
    12 47
    12 48
    12 49
    12 50
    12 51
    12 52
    12 53
    12 54
    12 55
    12 56
    12 57
    12 58
    12 59
    12 60
    12 61
    12 62
    12 63
    12 64
    12 65
    12 66
    12 67
    12 68
    12 69
    12 70
    12 71
    12 72
    12 73
    12 74
    12 75
    12 76
    12 77
    12 78
    12 79
    12 80
    12 81
    12 82
    12 83
    12 84
    12 85
    12 86
    12 87
    12 88
    12 89
    12 90
    12 91
    12 92
    12 93
    12 94
    12 95
    12 96
    12 97
    13 19
    13 20
    13 21
    13 22
    13 23
    13 24
    13 25
    13 26
    13 27
    13 28
    13 29
    13 30
    13 31
    13 32
    13 33
    13 34
    13 35
    13 36
    13 37
    13 38
    13 39
    13 40
    13 41
    13 42
    13 43
    13 44
    13 45
    13 46
    13 47
    13 48
    13 49
    13 50
    13 51
    13 52
    13 53
    13 54
    13 55
    13 56
    13 57
    13 58
    13 59
    13 60
    13 61
    13 62
    13 63
    13 64
    13 65
    13 66
    13 67
    13 68
    13 69
    13 70
    13 71
    13 72
    13 73
    13 74
    13 75
    13 76
    13 77
    13 78
    13 79
    13 80
    13 81
    13 82
    13 83
    13 84
    13 85
    13 86
    13 87
    13 88
    13 89
    13 90
    13 91
    13 92
    13 93
    13 94
    13 95
    13 96
    13 97
    14 19
    14 20
    14 21
    14 22
    14 23
    14 24
    14 25
    14 26
    14 27
    14 28
    14 29
    14 30
    14 31
    14 32
    14 33
    14 34
    14 35
    14 36
    14 37
    14 38
    14 39
    14 40
    14 41
    14 42
    14 43
    14 44
    14 45
    14 46
    14 47
    14 48
    14 49
    14 50
    14 51
    14 52
    14 53
    14 54
    14 55
    14 56
    14 57
    14 58
    14 59
    14 60
    14 61
    14 62
    14 63
    14 64
    14 65
    14 66
    14 67
    14 68
    14 69
    14 70
    14 71
    14 72
    14 73
    14 74
    14 75
    14 76
    14 77
    14 78
    14 79
    14 80
    14 81
    14 82
    14 83
    14 84
    14 85
    14 86
    14 87
    14 88
    14 89
    14 90
    14 91
    14 92
    14 93
    14 94
    14 95
    14 96
    14 97
    15 19
    15 20
    15 21
    15 22
    15 23
    15 24
    15 25
    15 26
    15 27
    15 28
    15 29
    15 30
    15 31
    15 32
    15 33
    15 34
    15 35
    15 36
    15 37
    15 38
    15 39
    15 40
    15 41
    15 42
    15 43
    15 44
    15 45
    15 46
    15 47
    15 48
    15 49
    15 50
    15 51
    15 52
    15 53
    15 54
    15 55
    15 56
    15 57
    15 58
    15 59
    15 60
    15 61
    15 62
    15 63
    15 64
    15 65
    15 66
    15 67
    15 68
    15 69
    15 70
    15 71
    15 72
    15 73
    15 74
    15 75
    15 76
    15 77
    15 78
    15 79
    15 80
    15 81
    15 82
    15 83
    15 84
    15 85
    15 86
    15 87
    15 88
    15 89
    15 90
    15 91
    15 92
    15 93
    15 94
    15 95
    15 96
    15 97
    16 19
    16 20
    16 21
    16 22
    16 23
    16 24
    16 25
    16 26
    16 27
    16 28
    16 29
    16 30
    16 31
    16 32
    16 33
    16 34
    16 35
    16 36
    16 37
    16 38
    16 39
    16 40
    16 41
    16 42
    16 43
    16 44
    16 45
    16 46
    16 47
    16 48
    16 49
    16 50
    16 51
    16 52
    16 53
    16 54
    16 55
    16 56
    16 57
    16 58
    16 59
    16 60
    16 61
    16 62
    16 63
    16 64
    16 65
    16 66
    16 67
    16 68
    16 69
    16 70
    16 71
    16 72
    16 73
    16 74
    16 75
    16 76
    16 77
    16 78
    16 79
    16 80
    16 81
    16 82
    16 83
    16 84
    16 85
    16 86
    16 87
    16 88
    16 89
    16 90
    16 91
    16 92
    16 93
    16 94
    16 95
    16 96
    16 97
    17 19
    17 20
    17 21
    17 22
    17 23
    17 24
    17 25
    17 26
    17 27
    17 28
    17 29
    17 30
    17 31
    17 32
    17 33
    17 34
    17 35
    17 36
    17 37
    17 38
    17 39
    17 40
    17 41
    17 42
    17 43
    17 44
    17 45
    17 46
    17 47
    17 48
    17 49
    17 50
    17 51
    17 52
    17 53
    17 54
    17 55
    17 56
    17 57
    17 58
    17 59
    17 60
    17 61
    17 62
    17 63
    17 64
    17 65
    17 66
    17 67
    17 68
    17 69
    17 70
    17 71
    17 72
    17 73
    17 74
    17 75
    17 76
    17 77
    17 78
    17 79
    17 80
    17 81
    17 82
    17 83
    17 84
    17 85
    17 86
    17 87
    17 88
    17 89
    17 90
    17 91
    17 92
    17 93
    17 94
    17 95
    17 96
    17 97
    18 19
    18 20
    18 21
    18 22
    18 23
    18 24
    18 25
    18 26
    18 27
    18 28
    18 29
    18 30
    18 31
    18 32
    18 33
    18 34
    18 35
    18 36
    18 37
    18 38
    18 39
    18 40
    18 41
    18 42
    18 43
    18 44
    18 45
    18 46
    18 47
    18 48
    18 49
    18 50
    18 51
    18 52
    18 53
    18 54
    18 55
    18 56
    18 57
    18 58
    18 59
    18 60
    18 61
    18 62
    18 63
    18 64
    18 65
    18 66
    18 67
    18 68
    18 69
    18 70
    18 71
    18 72
    18 73
    18 74
    18 75
    18 76
    18 77
    18 78
    18 79
    18 80
    18 81
    18 82
    18 83
    18 84
    18 85
    18 86
    18 87
    18 88
    18 89
    18 90
    18 91
    18 92
    18 93
    18 94
    18 95
    18 96
    18 97