시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB136675.000%

문제

꿍은 자료구조를 공부할때 각 정렬마다 비교횟수를 구해보라는 문제를 볼때마다 화가난 나머지 세상에서 제일 거지같은 문제를 만들어보고자 다음과 같은 문제를 만들었다.

N과 X가 주어질 때, 삽입정렬이 퀵정렬보다 비교를 최대 X번 더 하는 {1,2,...,N} 으로 구성된 순열의 개수를 구해야 한다. 단, 숫자가 매우 커질수 있으므로 출력값은 1234567로 나눈 나머지를 출력한다.

아래 코드는 삽입정렬 코드이며 비교횟수도 계산해준다.

procedure insertionSort(int N, array A[1..N]) defined as:
    A[0] := -Infinity
    for i := 2 to N do:
        j := i
        Increment(comparison_count)
        while A[j - 1] > A[j] do:
        SWAP(A[j - 1], A[j])
        j := j - 1
        Increment(comparison_count)
    end while
end for

아래코드는 퀵정렬 코드다. 만약 정렬하려는 배열의 길이가 L이라면, partition 알고리즘은 L-1번의 비교를 한다.

procedure quickSort(list A) defined as:
    list less, greater
    if length(A) <= 1 then
        return A

    pivot := A[1]
    for i := 2 to length(A) do:
        Increment(comparison_count)
        if A[i] < pivot then append A[i] to less
                        else append A[i] to greater
        end if
    end for
    return concatenate(quickSort(less), pivot, quickSort(greater))

예를 들어, 순열 (3,1,4,2)를 생각하자. 삽입정렬의 비교횟수는 총 6회로 i=2일때 2번, i=3일때 1번, i=4일때 3번의 비교가 이루어진다. 반면 퀵정렬의 비교횟수는 총 4회로 3이 pivot일때 3회의 비교를 한 후 (1,2)와 (4)로 partition이 이루어진다. 이후 (1,2)에서 1번의 비교가 이루어지므로 총 4회의 비교가 이루어진다.

입력

입력의 첫 번째 줄에 두 개의 정수 N과 X가 주어지며 각각의 범위는 1 < N < 32, 1 ≤ X ≤ N^2 이다.

출력

삽입정렬이 퀵정렬보다 최대 X번 비교를 더 하게되는 순열의 개수를 1234567로 나눈 나머지를 출력한다.

예제 입력 1

3 1

예제 출력 1

2

예제 입력 2

6 2

예제 출력 2

719

예제 입력 3

21 3

예제 출력 3

660773

힌트

N=3 일때 가능한 6개의 순열과 각 경우의 정렬별 비교횟수는 아래와 같다.

1 2 3 - NI = 2, NQ = 3
1 3 2 - NI = 3, NQ = 3
2 1 3 - NI = 3, NQ = 2
2 3 1 - NI = 4, NQ = 2
3 1 2 - NI = 4, NQ = 3
3 2 1 - NI = 5, NQ = 3

이 문제의 데이터는 총 10개이고, 다음과 같다.

  • N = 5, X = 1
  • N = 12, X = 2
  • N = 18, X = 3
  • N = 20, X = 1
  • N = 22, X = 5
  • N = 23, X = 3
  • N = 24, X = 4
  • N = 29, X = 2
  • N = 30, X = 5
  • N = 31, X = 1
W3sicHJvYmxlbV9pZCI6IjMzMjIiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWM4MTVcdWI4MmNcdWM3NTggXHVjMmRjXHVhYzA0XHViY2Y1XHVjN2ExXHViM2M0IiwiZGVzY3JpcHRpb24iOiI8cD5cdWFmY2RcdWM3NDAgXHVjNzkwXHViOGNjXHVhZDZjXHVjODcwXHViOTdjIFx1YWNmNVx1YmQ4MFx1ZDU2MFx1YjU0YyBcdWFjMDEgXHVjODE1XHViODJjXHViOWM4XHViMmU0IFx1YmU0NFx1YWQ1MFx1ZDY5Zlx1YzIxOFx1Yjk3YyBcdWFkNmNcdWQ1NzRcdWJjZjRcdWI3N2NcdWIyOTQgXHViYjM4XHVjODFjXHViOTdjIFx1YmNmY1x1YjU0Y1x1YjljOFx1YjJlNCBcdWQ2NTRcdWFjMDBcdWIwOWMgXHViMDk4XHViYTM4XHVjOWMwIFx1YzEzOFx1YzBjMVx1YzVkMFx1YzExYyBcdWM4MWNcdWM3N2MgXHVhYzcwXHVjOWMwXHVhYzE5XHVjNzQwIFx1YmIzOFx1YzgxY1x1Yjk3YyBcdWI5Y2NcdWI0ZTRcdWM1YjRcdWJjZjRcdWFjZTBcdWM3OTAgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc0MCBcdWJiMzhcdWM4MWNcdWI5N2MgXHViOWNjXHViNGU0XHVjNWM4XHViMmU0LjxcL3A+XHJcblxyXG48cD5OXHVhY2ZjIFhcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM4IFx1YjU0YywgXHVjMGJkXHVjNzg1XHVjODE1XHViODJjXHVjNzc0IFx1ZDAzNVx1YzgxNVx1YjgyY1x1YmNmNFx1YjJlNCBcdWJlNDRcdWFkNTBcdWI5N2MgXHVjZDVjXHViMzAwIFhcdWJjODggXHViMzU0IFx1ZDU1OFx1YjI5NCZuYnNwO3sxLDIsLi4uLE59IFx1YzczY1x1Yjg1YyBcdWFkNmNcdWMxMzFcdWI0MWMgXHVjMjFjXHVjNWY0XHVjNzU4IFx1YWMxY1x1YzIxOFx1Yjk3YyBcdWFkNmNcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWIyZTgsIFx1YzIyYlx1Yzc5MFx1YWMwMCBcdWI5ZTRcdWM2YjAgXHVjZWU0XHVjOWM4XHVjMjE4IFx1Yzc4OFx1YzczY1x1YmJjMFx1Yjg1YyBcdWNkOWNcdWI4MjVcdWFjMTJcdWM3NDAgMTIzNDU2N1x1Yjg1YyBcdWIwOThcdWIyMDggXHViMDk4XHViYTM4XHVjOWMwXHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNTQ0XHViNzk4IFx1Y2Y1NFx1YjRkY1x1YjI5NCBcdWMwYmRcdWM3ODVcdWM4MTVcdWI4MmMgXHVjZjU0XHViNGRjXHVjNzc0XHViYTcwIFx1YmU0NFx1YWQ1MFx1ZDY5Zlx1YzIxOFx1YjNjNCBcdWFjYzRcdWMwYjBcdWQ1NzRcdWM5MDBcdWIyZTQuPFwvcD5cclxuXHJcbjxwcmU+XHJcbnByb2NlZHVyZSBpbnNlcnRpb25Tb3J0KGludCBOLCBhcnJheSBBWzEuLk5dKSBkZWZpbmVkIGFzOlxyXG4gICAgQVswXSA6PSAtSW5maW5pdHlcclxuICAgIGZvciBpIDo9IDIgdG8gTiBkbzpcclxuICAgICAgICBqIDo9IGlcclxuICAgICAgICA8c3Ryb25nPkluY3JlbWVudChjb21wYXJpc29uX2NvdW50KTxcL3N0cm9uZz5cclxuICAgICAgICB3aGlsZSBBW2ogLSAxXSAmZ3Q7IEFbal0gZG86XHJcbiAgICAgICAgU1dBUChBW2ogLSAxXSwgQVtqXSlcclxuICAgICAgICBqIDo9IGogLSAxXHJcbiAgICAgICAgPHN0cm9uZz5JbmNyZW1lbnQoY29tcGFyaXNvbl9jb3VudCk8XC9zdHJvbmc+XHJcbiAgICBlbmQgd2hpbGVcclxuZW5kIGZvcjxcL3ByZT5cclxuXHJcbjxwPlx1YzU0NFx1Yjc5OFx1Y2Y1NFx1YjRkY1x1YjI5NCBcdWQwMzVcdWM4MTVcdWI4MmMgXHVjZjU0XHViNGRjXHViMmU0LiBcdWI5Y2NcdWM1N2QgXHVjODE1XHViODJjXHVkNTU4XHViODI0XHViMjk0Jm5ic3A7XHViYzMwXHVjNWY0XHVjNzU4IFx1YWUzOFx1Yzc3NFx1YWMwMCBMXHVjNzc0XHViNzdjXHViYTc0LCBwYXJ0aXRpb24gXHVjNTRjXHVhY2UwXHViOWFjXHVjOTk4XHVjNzQwIEwtMVx1YmM4OFx1Yzc1OCBcdWJlNDRcdWFkNTBcdWI5N2MgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cHJlPlxyXG5wcm9jZWR1cmUgcXVpY2tTb3J0KGxpc3QgQSkgZGVmaW5lZCBhczpcclxuICAgIGxpc3QgbGVzcywgZ3JlYXRlclxyXG4gICAgaWYgbGVuZ3RoKEEpICZsdDs9IDEgdGhlblxyXG4gICAgICAgIHJldHVybiBBXHJcblxyXG4gICAgcGl2b3QgOj0gQVsxXVxyXG4gICAgZm9yIGkgOj0gMiB0byBsZW5ndGgoQSkgZG86XHJcbiAgICAgICAgPHN0cm9uZz5JbmNyZW1lbnQoY29tcGFyaXNvbl9jb3VudCk8XC9zdHJvbmc+XHJcbiAgICAgICAgaWYgQVtpXSAmbHQ7IHBpdm90IHRoZW4gYXBwZW5kIEFbaV0gdG8gbGVzc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGFwcGVuZCBBW2ldIHRvIGdyZWF0ZXJcclxuICAgICAgICBlbmQgaWZcclxuICAgIGVuZCBmb3JcclxuICAgIHJldHVybiBjb25jYXRlbmF0ZShxdWlja1NvcnQobGVzcyksIHBpdm90LCBxdWlja1NvcnQoZ3JlYXRlcikpPFwvcHJlPlxyXG5cclxuPHA+XHVjNjA4XHViOTdjIFx1YjRlNFx1YzViNCwgXHVjMjFjXHVjNWY0ICgzLDEsNCwyKVx1Yjk3YyBcdWMwZGRcdWFjMDFcdWQ1NThcdWM3OTAuIFx1YzBiZFx1Yzc4NVx1YzgxNVx1YjgyY1x1Yzc1OCBcdWJlNDRcdWFkNTBcdWQ2OWZcdWMyMThcdWIyOTQgXHVjZDFkIDZcdWQ2OGNcdWI4NWMgaT0yXHVjNzdjXHViNTRjIDJcdWJjODgsIGk9M1x1Yzc3Y1x1YjU0YyAxXHViYzg4LCBpPTRcdWM3N2NcdWI1NGMgM1x1YmM4OFx1Yzc1OCBcdWJlNDRcdWFkNTBcdWFjMDAgXHVjNzc0XHViOGU4XHVjNWI0XHVjOWM0XHViMmU0LiBcdWJjMThcdWJhNzQgXHVkMDM1XHVjODE1XHViODJjXHVjNzU4IFx1YmU0NFx1YWQ1MFx1ZDY5Zlx1YzIxOFx1YjI5NCBcdWNkMWQgNFx1ZDY4Y1x1Yjg1YyAzXHVjNzc0IHBpdm90XHVjNzdjXHViNTRjIDNcdWQ2OGNcdWM3NTggXHViZTQ0XHVhZDUwXHViOTdjIFx1ZDU1YyBcdWQ2YzQgKDEsMilcdWM2NDAgKDQpXHViODVjIHBhcnRpdGlvblx1Yzc3NCBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Yzc3NFx1ZDZjNCAoMSwyKVx1YzVkMFx1YzExYyAxXHViYzg4XHVjNzU4IFx1YmU0NFx1YWQ1MFx1YWMwMCBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzBcdWJiYzBcdWI4NWMgXHVjZDFkIDRcdWQ2OGNcdWM3NTggXHViZTQ0XHVhZDUwXHVhYzAwIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Yzc4NVx1YjgyNVx1Yzc1OCBcdWNjYWIgXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMCBcdWI0NTAgXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOCBOXHVhY2ZjIFhcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWMwXHViYTcwIFx1YWMwMVx1YWMwMVx1Yzc1OCBcdWJjOTRcdWM3MDRcdWIyOTQgMSAmbHQ7IE4gJmx0OyAzMiwgMSAmbGU7IFggJmxlOyBOXjIgXHVjNzc0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YzBiZFx1Yzc4NVx1YzgxNVx1YjgyY1x1Yzc3NCBcdWQwMzVcdWM4MTVcdWI4MmNcdWJjZjRcdWIyZTQgXHVjZDVjXHViMzAwIFhcdWJjODggXHViZTQ0XHVhZDUwXHViOTdjIFx1YjM1NCBcdWQ1NThcdWFjOGNcdWI0MThcdWIyOTQgXHVjMjFjXHVjNWY0XHVjNzU4IFx1YWMxY1x1YzIxOFx1Yjk3YyAxMjM0NTY3XHViODVjIFx1YjA5OFx1YjIwOCBcdWIwOThcdWJhMzhcdWM5YzBcdWI5N2MgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiI8cD5OPTMgXHVjNzdjXHViNTRjIFx1YWMwMFx1YjJhNVx1ZDU1YyA2XHVhYzFjXHVjNzU4IFx1YzIxY1x1YzVmNFx1YWNmYyBcdWFjMDEgXHVhY2JkXHVjNmIwXHVjNzU4IFx1YzgxNVx1YjgyY1x1YmNjNCBcdWJlNDRcdWFkNTBcdWQ2OWZcdWMyMThcdWIyOTQgXHVjNTQ0XHViNzk4XHVjNjQwIFx1YWMxOVx1YjJlNC48XC9wPlxyXG5cclxuPHByZT5cclxuMSAyIDMgLSBOSSA9IDIsIE5RID0gM1xyXG4xIDMgMiAtIE5JID0gMywgTlEgPSAzXHJcbjIgMSAzIC0gTkkgPSAzLCBOUSA9IDJcclxuMiAzIDEgLSBOSSA9IDQsIE5RID0gMlxyXG4zIDEgMiAtIE5JID0gNCwgTlEgPSAzXHJcbjMgMiAxIC0gTkkgPSA1LCBOUSA9IDM8XC9wcmU+XHJcblxyXG48cD5cdWM3NzQgXHViYjM4XHVjODFjXHVjNzU4IFx1YjM3MFx1Yzc3NFx1ZDEzMFx1YjI5NCBcdWNkMWQgMTBcdWFjMWNcdWM3NzRcdWFjZTAsIFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+TiA9IDUsIFggPSAxPFwvbGk+XHJcblx0PGxpPk4gPSAxMiwgWCA9IDI8XC9saT5cclxuXHQ8bGk+TiA9IDE4LCBYID0gMzxcL2xpPlxyXG5cdDxsaT5OID0gMjAsIFggPSAxPFwvbGk+XHJcblx0PGxpPk4gPSAyMiwgWCA9IDU8XC9saT5cclxuXHQ8bGk+TiA9IDIzLCBYID0gMzxcL2xpPlxyXG5cdDxsaT5OID0gMjQsIFggPSA0PFwvbGk+XHJcblx0PGxpPk4gPSAyOSwgWCA9IDI8XC9saT5cclxuXHQ8bGk+TiA9IDMwLCBYID0gNTxcL2xpPlxyXG5cdDxsaT5OID0gMzEsIFggPSAxPFwvbGk+XHJcbjxcL3VsPlxyXG4iLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiJ9LHsicHJvYmxlbV9pZCI6IjMzMjIiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJzb3J0aW5nIiwiZGVzY3JpcHRpb24iOiI8cD5Gb3IgZ2l2ZW4gTiBhbmQgWCwgZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgcGVybXV0YXRpb25zIG9mIHsxLCAyLCAmaGVsbGlwOywgTn0gb24gd2hpY2ggSW5zZXJ0aW9uIFNvcnQgbWFrZXMgYXQgbW9zdCBYIHRpbWVzIHRoZSBudW1iZXIgb2YgY29tcGFyaXNvbnMgdGhhdCBRdWljayBTb3J0IG1ha2VzLiBTaW5jZSB0aGUgbnVtYmVyIGNhbiBiZSBwcmV0dHkgYmlnLCB3ZSBhc2sgeW91IHRvIG91dHB1dCBpdCBtb2R1bG8gMTIzNDU2Ny48XC9wPlxyXG5cclxuPHA+VGhlIGZvbGxvd2luZyBpcyBvdXIgaW1wbGVtZW50YXRpb24gb2YgSW5zZXJ0aW9uIFNvcnQsIHdoaWNoIGFsc28gY291bnRzIHRoZSBudW1iZXIgb2YgY29tcGFyaXNvbnMgaXQgbWFrZXM6Jm5ic3A7PFwvcD5cclxuXHJcbjxwcmU+XHJcbnByb2NlZHVyZSBpbnNlcnRpb25Tb3J0KGludCBOLCBhcnJheSBBWzEuLk5dKSBkZWZpbmVkIGFzOlxyXG4gICAgQVswXSA6PSAtSW5maW5pdHlcclxuICAgIGZvciBpIDo9IDIgdG8gTiBkbzpcclxuICAgICAgICBqIDo9IGlcclxuICAgICAgICA8c3Ryb25nPkluY3JlbWVudChjb21wYXJpc29uX2NvdW50KTxcL3N0cm9uZz5cclxuICAgICAgICB3aGlsZSBBW2ogLSAxXSAmZ3Q7IEFbal0gZG86XHJcbiAgICAgICAgU1dBUChBW2ogLSAxXSwgQVtqXSlcclxuICAgICAgICBqIDo9IGogLSAxXHJcbiAgICAgICAgPHN0cm9uZz5JbmNyZW1lbnQoY29tcGFyaXNvbl9jb3VudCk8XC9zdHJvbmc+XHJcbiAgICBlbmQgd2hpbGVcclxuZW5kIGZvcjxcL3ByZT5cclxuXHJcbjxwPlRoZSBmb2xsb3dpbmcgaXMgb3VyIGltcGxlbWVudGF0aW9uIG9mIFF1aWNrIFNvcnQuIElmIEwgaXMgdGhlIGxlbmd0aCBvZiB0aGUgbGlzdCB3ZSBhcmUgc29ydGluZyBpbiBhIHJlY3Vyc2l2ZSBzdGVwLCB0aGUgcGFydGl0aW9uIGFsZ29yaXRobSBtYWtlcyBMLTEgY29tcGFyaXNvbnMuPFwvcD5cclxuXHJcbjxwcmU+XHJcbnByb2NlZHVyZSBxdWlja1NvcnQobGlzdCBBKSBkZWZpbmVkIGFzOlxyXG4gICAgbGlzdCBsZXNzLCBncmVhdGVyXHJcbiAgICBpZiBsZW5ndGgoQSkgJmx0Oz0gMSB0aGVuXHJcbiAgICAgICAgcmV0dXJuIEFcclxuXHJcbiAgICBwaXZvdCA6PSBBWzFdXHJcbiAgICBmb3IgaSA6PSAyIHRvIGxlbmd0aChBKSBkbzpcclxuICAgICAgICA8c3Ryb25nPkluY3JlbWVudChjb21wYXJpc29uX2NvdW50KTxcL3N0cm9uZz5cclxuICAgICAgICBpZiBBW2ldICZsdDsgcGl2b3QgdGhlbiBhcHBlbmQgQVtpXSB0byBsZXNzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgYXBwZW5kIEFbaV0gdG8gZ3JlYXRlclxyXG4gICAgICAgIGVuZCBpZlxyXG4gICAgZW5kIGZvclxyXG4gICAgcmV0dXJuIGNvbmNhdGVuYXRlKHF1aWNrU29ydChsZXNzKSwgcGl2b3QsIHF1aWNrU29ydChncmVhdGVyKSk8XC9wcmU+XHJcblxyXG48cD5Gb3IgZXhhbXBsZSwgbGV0IHVzIGNvbnNpZGVyIHRoZSBwZXJtdXRhdGlvbiAoMywgMSwgNCwgMikuPFwvcD5cclxuXHJcbjxwPlRoZSBudW1iZXIgb2YgY29tcGFyaXNvbnMgZm9yIEluc2VydGlvbiBTb3J0IGlzIDY6IDIgY29tcGFyaXNvbnMgZm9yIGk9MiwgMSBmb3IgaT0zLCBhbmQgMyBmb3IgaT00LiZuYnNwOzxcL3A+XHJcblxyXG48cD5UaGUgbnVtYmVyIG9mIGNvbXBhcmlzb25zIGZvciBRdWljayBTb3J0IGlzIDQuIEluIHRoZSBmaXJzdCBpdGVyYXRpb24gMyBpcyB0aGUgcGl2b3QuIEl0IHRha2VzIDMgY29tcGFyaXNvbnMgdG8gcGFydGl0aW9uICgxLDQsMikgaW50byAoMSwyKSBhbmQgKDQpLiBUbyBmdXJ0aGVyIHNvcnQgKDEsMikgaXQgdGFrZXMgMSBtb3JlIGNvbXBhcmlzb24uPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgZmlyc3QgbGluZSBjb250YWlucyAyIGludGVnZXJzLCBzZXBhcmF0ZWQgYnkgYSBzcGFjZTogTiBhbmQgWC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5JbiBhbGwgaW5wdXRzIGZpbGVzLCAxICZsdDsgTiAmbHQ7IDMyLjxcL2xpPlxyXG5cdDxsaT5JbiBhbGwgaW5wdXRzIGZpbGVzLCAxICZsZTsgWCAmbGU7IE48c3VwPjI8XC9zdXA+PFwvbGk+XHJcbjxcL3VsPlxyXG4iLCJvdXRwdXQiOiI8cD5UaGUgbnVtYmVyIG9mIHBlcm11dGF0aW9ucyBmb3Igd2hpY2ggSW5zZXJ0aW9uIFNvcnQgaXMgYXQgbW9zdCBYIHRpbWVzIHNsb3dlciB0aGFuIFF1aWNrIFNvcnQuIFRoZSBudW1iZXIgc2hvdWxkIGJlIHByaW50ZWQgbW9kdWxvIDEyMzQ1NjcuJm5ic3A7PFwvcD5cclxuIiwiaGludCI6IjxwPkZvciB0aGUgNiBwb3NzaWJsZSBwZXJtdXRhdGlvbnMgd2UgaGF2ZSBOSSBhbmQgTlEsIHRoZSBudW1iZXIgb2YgY29tcGFyaXNvbnMgZm9yIEluc2VydGlvbiBTb3J0IGFuZCBRdWljayBTb3J0OiZuYnNwOzxcL3A+XHJcblxyXG48cHJlPlxyXG4xIDIgMyAtIE5JID0gMiwgTlEgPSAzXHJcbjEgMyAyIC0gTkkgPSAzLCBOUSA9IDNcclxuMiAxIDMgLSBOSSA9IDMsIE5RID0gMlxyXG4yIDMgMSAtIE5JID0gNCwgTlEgPSAyXHJcbjMgMSAyIC0gTkkgPSA0LCBOUSA9IDNcclxuMyAyIDEgLSBOSSA9IDUsIE5RID0gMyA8XC9wcmU+XHJcbiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiRW5nbGlzaCJ9XQ==

출처

Olympiad > Central European Olympiad in Informatics > CEOI 2009 > Day 2 5번

채점 및 기타 정보

  • 예제는 채점하지 않는다.