시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB110413837.255%

문제

마오공 곤돌라는 타이페이의 명소 중 하나이다. 곤돌라 시스템은 원형의 레일과, 하나의 정류장이 있고, 1 부터 n까지 순서대로 번호가 붙은 n개의 곤돌라가 모두 단일한 방향으로 레일을 따라 움직이는 형태이다. i번 곤돌라가 정류장을 지난 직후에는 i+1번 곤돌라가 정류장을 지나가게 된다. (단, i=n번 곤돌라가 지나간 직후에 1 번 곤돌라가 지나가게 된다.)

곤돌라들은 고장이 나기도 한다. 다행히 무제한으로 많은 곤돌라의 여분이 있고, 여분 곤돌라들은 n+1, n+2과 같이 순차적으로 번호가 붙어 있다. 특정한 곤돌라가 고장이 나면 고장난 곤돌라는 빼고, 동일한 위치에 여분 곤돌라를 배치한다. 여분 곤돌라는 작은 번호부터 사용된다. 예를 들어, 사용하는 곤돌라 수가 총 5 개이고, 1 번 곤돌라가 고장난다면, 그 곤돌라는 6번으로 교체된다.

당신은 정류장에 서서 곤돌라들이 지나가는 것을 즐겨 본다. 곤돌라 수열이라는 것은 임의의 시점에서 시작해서 정류장을 지나가는 n개의 곤돌라들의 번호를 순서대로 적은 것이다. 곤돌라 수열을 적기 시작하는 시점 이전에 이미 몇개의 곤돌라가 고장나서 교체되었을 수 있다. 하지만, 곤돌라 수열을 적는 도중에는 아무 곤돌라도 고장이 나지 않는다.

전체적으로 곤돌라들의 배치가 동일하더라도 어떤 시점에 곤돌라 수열을 적기 시작하느냐에 따라 서로 다른 곤돌라 수열이 나올수 있다는 점에 주의하자. 예를 들어, 총 5개의 곤돌라들 중 고장난 곤돌라가 없는 경우에 (2, 3, 4, 5, 1) 과 (4, 5, 1, 2, 3) 은 모두 가능한 곤돌라 수열들이다. 하지만, 이경우 (4, 3, 2, 5, 1) 은 가능한 곤돌라 수열이 아니다. (곤돌라 번호의 순서가 잘못되어 있다.)

만약 곤돌라 1번 만이 고장난 상황이라면, (4, 5, 6, 2, 3) 의 곤돌라 수열을 만들 수 있다. 만약 이후 4번 곤돌라가 고장난다면, 7번 곤돌라가 그 자리에 있게 되고, (6, 2, 3, 7, 5) 가 가능한 곤돌라 수열이 된다. 만약 7번 곤돌라가 이후에 고장이 난다면, 8번이 그 자리를 차지할 것이고 (3, 8, 5, 6, 2) 가 가능한 곤돌라 수열들 중 하나가 된다.

고장난 곤돌라 새 곤돌라 가능한 곤돌라 수열 중 하나
1 6 (4, 5, 6, 2, 3)
4 7 (6, 2, 3, 7, 5)
7 8 (3, 8, 5, 6, 2)

교체 수열이라는 것은 고장난 곤돌라들의 번호를 고장난 순서에 따라 쓴 것이다. 직전의 예에서 교체 수열은 (1, 4, 7) 이다. 교체 수열 e이 곤돌라 수열 g를 만든다고 말을 할 수 있는데, 그것은 초기 상황에서 시작해서 r에 해당하는 방법으로 곤돌라들이 고장난 직후에, g가 가능한 곤돌라 수열들 중 하나인 경우를 의미한다.

이 문제에서는 주어진 수열(가능한 곤돌라 수열일 수도 아닐 수도 있음)을 만들 수 있는 교체 수열의 수를 세어서 그 값을 1,000,000,009 로 나눈 나머지를 계산해야 한다. 다음과 같이 선언된 함수 countReplacement 를 구현해야 한다.

  • countReplacement(n, inputSeq)
    • n: 입력 수열의 길이.
    • inputSeq: 크기 인 배열; inputSeq[i]는 입력 수열의 번 원소이다 (0 ≤ i ≤ n-1).
    • 입력이 곤돌라 수열인 경우, 입력의 곤돌라 수열을 만들 수 있는 모든 교체 수열의 수를 센 다음에 (그 수는 매우 클수 있음) 그 결과를 1,000,000,009 로 나눈 나머지를 리턴해야 한다. 만약 입력이 곤돌라 수열이 아닌 경우 0을 리턴해야 한다. 입력이 곤돌라 수열이고 고장난 곤돌라가 하나도 없는 경우는 1을 리턴해야 한다.

입력

첫째 줄에 입력 수열의 길이 n이 주어진다.

둘째 줄에는 inputSeq[0], ..., inputSeq[n-1]이 주어진다.

출력

countReplacement함수의 리턴값을 출력한다.

서브태스크

번호 배점 제한
1 5

4 ≤ n ≤ 50, 1 ≤ inputSeq[i] ≤ n+3

2 15

4 ≤ n ≤ 50, 1 ≤ inputSeq[i] ≤ 100 이고 초기 곤돌라들 중 (즉, 1, ..., n 번 중) 최소한 n - 3 개는 고장이 나지 않았다.

3 15

n ≤ 100,000 1 ≤ inputSeq[i] ≤ 250,000

4 10

n ≤ 100,000 1 ≤ inputSeq[i] ≤ 1,000,000,000

예제 입력 1

4
1 2 7 6

예제 출력 1

2

힌트

서브태스크 inputSeq 리턴 값 교체 수열
1 (1, 2, 7, 6) 2 (3, 4, 5) or (4, 5, 3)
2 (2, 3, 4, 12, 6, 7, 1) 1 (5, 8, 9, 10, 11)
3 (4, 7, 4, 7) 0 inputSeq가 곤돌라 수열이 아님
4 (3, 4) 2 (1, 2) or (2, 1)
W3sicHJvYmxlbV9pZCI6IjEwMDc0IiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHVhY2U0XHViM2NjXHViNzdjIC0gXHVhZDUwXHVjY2I0IFx1YzIxOFx1YzVmNFx1Yzc1OCBcdWFjMWNcdWMyMTggXHVjMTM4XHVhZTMwIiwiZGVzY3JpcHRpb24iOiI8cD5cdWI5YzhcdWM2MjRcdWFjZjUgXHVhY2U0XHViM2NjXHViNzdjXHViMjk0IFx1ZDBjMFx1Yzc3NFx1ZDM5OFx1Yzc3NFx1Yzc1OCBcdWJhODVcdWMxOGMgXHVjOTExIFx1ZDU1OFx1YjA5OFx1Yzc3NFx1YjJlNC4gXHVhY2U0XHViM2NjXHViNzdjIFx1YzJkY1x1YzJhNFx1ZDE1Y1x1Yzc0MCBcdWM2ZDBcdWQ2MTVcdWM3NTggXHViODA4XHVjNzdjXHVhY2ZjLCBcdWQ1NThcdWIwOThcdWM3NTggXHVjODE1XHViOTU4XHVjN2E1XHVjNzc0IFx1Yzc4OFx1YWNlMCwgMSBcdWJkODBcdWQxMzAgblx1YWU0Y1x1YzljMCBcdWMyMWNcdWMxMWNcdWIzMDBcdWI4NWMgXHViYzg4XHVkNjM4XHVhYzAwIFx1YmQ5OVx1Yzc0MCBuXHVhYzFjXHVjNzU4IFx1YWNlNFx1YjNjY1x1Yjc3Y1x1YWMwMCBcdWJhYThcdWI0NTAgXHViMmU4XHVjNzdjXHVkNTVjIFx1YmMyOVx1ZDVhNVx1YzczY1x1Yjg1YyBcdWI4MDhcdWM3N2NcdWM3NDQgXHViNTMwXHViNzdjIFx1YzZjMFx1YzljMVx1Yzc3NFx1YjI5NCBcdWQ2MTVcdWQwZGNcdWM3NzRcdWIyZTQuIGlcdWJjODggXHVhY2U0XHViM2NjXHViNzdjXHVhYzAwIFx1YzgxNVx1Yjk1OFx1YzdhNVx1Yzc0NCBcdWM5YzBcdWIwOWMgXHVjOWMxXHVkNmM0XHVjNWQwXHViMjk0IGkrMVx1YmM4OCBcdWFjZTRcdWIzY2NcdWI3N2NcdWFjMDAgXHVjODE1XHViOTU4XHVjN2E1XHVjNzQ0IFx1YzljMFx1YjA5OFx1YWMwMFx1YWM4YyBcdWI0MWNcdWIyZTQuIChcdWIyZTgsIGk9blx1YmM4OCBcdWFjZTRcdWIzY2NcdWI3N2NcdWFjMDAgXHVjOWMwXHViMDk4XHVhYzA0IFx1YzljMVx1ZDZjNFx1YzVkMCAxIFx1YmM4OCBcdWFjZTRcdWIzY2NcdWI3N2NcdWFjMDAgXHVjOWMwXHViMDk4XHVhYzAwXHVhYzhjIFx1YjQxY1x1YjJlNC4pPFwvcD5cclxuXHJcbjxwPlx1YWNlNFx1YjNjY1x1Yjc3Y1x1YjRlNFx1Yzc0MCBcdWFjZTBcdWM3YTVcdWM3NzQgXHViMDk4XHVhZTMwXHViM2M0IFx1ZDU1Y1x1YjJlNC4gXHViMmU0XHVkNTg5XHVkNzg4IFx1YmIzNFx1YzgxY1x1ZDU1Y1x1YzczY1x1Yjg1YyBcdWI5Y2VcdWM3NDAgXHVhY2U0XHViM2NjXHViNzdjXHVjNzU4IFx1YzVlY1x1YmQ4NFx1Yzc3NCBcdWM3ODhcdWFjZTAsIFx1YzVlY1x1YmQ4NCBcdWFjZTRcdWIzY2NcdWI3N2NcdWI0ZTRcdWM3NDAgbisxLCBuKzJcdWFjZmMgXHVhYzE5XHVjNzc0IFx1YzIxY1x1Y2MyOFx1YzgwMVx1YzczY1x1Yjg1YyBcdWJjODhcdWQ2MzhcdWFjMDAgXHViZDk5XHVjNWI0IFx1Yzc4OFx1YjJlNC4gXHVkMmI5XHVjODE1XHVkNTVjIFx1YWNlNFx1YjNjY1x1Yjc3Y1x1YWMwMCBcdWFjZTBcdWM3YTVcdWM3NzQgXHViMDk4XHViYTc0IFx1YWNlMFx1YzdhNVx1YjA5YyBcdWFjZTRcdWIzY2NcdWI3N2NcdWIyOTQgXHViZTdjXHVhY2UwLCBcdWIzZDlcdWM3N2NcdWQ1NWMgXHVjNzA0XHVjZTU4XHVjNWQwIFx1YzVlY1x1YmQ4NCBcdWFjZTRcdWIzY2NcdWI3N2NcdWI5N2MgXHViYzMwXHVjZTU4XHVkNTVjXHViMmU0LiBcdWM1ZWNcdWJkODQgXHVhY2U0XHViM2NjXHViNzdjXHViMjk0IFx1Yzc5MVx1Yzc0MCBcdWJjODhcdWQ2MzhcdWJkODBcdWQxMzAgXHVjMGFjXHVjNmE5XHViNDFjXHViMmU0LiBcdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0LCBcdWMwYWNcdWM2YTlcdWQ1NThcdWIyOTQgXHVhY2U0XHViM2NjXHViNzdjIFx1YzIxOFx1YWMwMCBcdWNkMWQgNSBcdWFjMWNcdWM3NzRcdWFjZTAsIDEgXHViYzg4IFx1YWNlNFx1YjNjY1x1Yjc3Y1x1YWMwMCBcdWFjZTBcdWM3YTVcdWIwOWNcdWIyZTRcdWJhNzQsIFx1YWRmOCBcdWFjZTRcdWIzY2NcdWI3N2NcdWIyOTQgNlx1YmM4OFx1YzczY1x1Yjg1YyBcdWFkNTBcdWNjYjRcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjJmOVx1YzJlMFx1Yzc0MCBcdWM4MTVcdWI5NThcdWM3YTVcdWM1ZDAgXHVjMTFjXHVjMTFjIFx1YWNlNFx1YjNjY1x1Yjc3Y1x1YjRlNFx1Yzc3NCBcdWM5YzBcdWIwOThcdWFjMDBcdWIyOTQgXHVhYzgzXHVjNzQ0IFx1Yzk5MFx1YWNhOCBcdWJjZjhcdWIyZTQuIFx1YWNlNFx1YjNjY1x1Yjc3YyBcdWMyMThcdWM1ZjRcdWM3NzRcdWI3N2NcdWIyOTQgXHVhYzgzXHVjNzQwIFx1Yzc4NFx1Yzc1OFx1Yzc1OCBcdWMyZGNcdWM4MTBcdWM1ZDBcdWMxMWMgXHVjMmRjXHVjNzkxXHVkNTc0XHVjMTFjIFx1YzgxNVx1Yjk1OFx1YzdhNVx1Yzc0NCBcdWM5YzBcdWIwOThcdWFjMDBcdWIyOTQgblx1YWMxY1x1Yzc1OCBcdWFjZTRcdWIzY2NcdWI3N2NcdWI0ZTRcdWM3NTggXHViYzg4XHVkNjM4XHViOTdjIFx1YzIxY1x1YzExY1x1YjMwMFx1Yjg1YyBcdWM4MDFcdWM3NDAgXHVhYzgzXHVjNzc0XHViMmU0LiBcdWFjZTRcdWIzY2NcdWI3N2MgXHVjMjE4XHVjNWY0XHVjNzQ0IFx1YzgwMVx1YWUzMCBcdWMyZGNcdWM3OTFcdWQ1NThcdWIyOTQgXHVjMmRjXHVjODEwIFx1Yzc3NFx1YzgwNFx1YzVkMCBcdWM3NzRcdWJiZjggXHViYTg3XHVhYzFjXHVjNzU4IFx1YWNlNFx1YjNjY1x1Yjc3Y1x1YWMwMCBcdWFjZTBcdWM3YTVcdWIwOThcdWMxMWMgXHVhZDUwXHVjY2I0XHViNDE4XHVjNWM4XHVjNzQ0IFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1ZDU1OFx1YzljMFx1YjljYywgXHVhY2U0XHViM2NjXHViNzdjIFx1YzIxOFx1YzVmNFx1Yzc0NCBcdWM4MDFcdWIyOTQgXHViM2M0XHVjOTExXHVjNWQwXHViMjk0IFx1YzU0NFx1YmIzNCBcdWFjZTRcdWIzY2NcdWI3N2NcdWIzYzQgXHVhY2UwXHVjN2E1XHVjNzc0IFx1YjA5OFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzgwNFx1Y2NiNFx1YzgwMVx1YzczY1x1Yjg1YyBcdWFjZTRcdWIzY2NcdWI3N2NcdWI0ZTRcdWM3NTggXHViYzMwXHVjZTU4XHVhYzAwIFx1YjNkOVx1Yzc3Y1x1ZDU1OFx1YjM1NFx1Yjc3Y1x1YjNjNCBcdWM1YjRcdWI1YTQgXHVjMmRjXHVjODEwXHVjNWQwIFx1YWNlNFx1YjNjY1x1Yjc3YyBcdWMyMThcdWM1ZjRcdWM3NDQgXHVjODAxXHVhZTMwIFx1YzJkY1x1Yzc5MVx1ZDU1OFx1YjI5MFx1YjBkMFx1YzVkMCBcdWI1MzBcdWI3N2MgXHVjMTFjXHViODVjIFx1YjJlNFx1Yjk3OCBcdWFjZTRcdWIzY2NcdWI3N2MgXHVjMjE4XHVjNWY0XHVjNzc0IFx1YjA5OFx1YzYyY1x1YzIxOCBcdWM3ODhcdWIyZTRcdWIyOTQgXHVjODEwXHVjNWQwIFx1YzhmY1x1Yzc1OFx1ZDU1OFx1Yzc5MC4gXHVjNjA4XHViOTdjIFx1YjRlNFx1YzViNCwgXHVjZDFkIDVcdWFjMWNcdWM3NTggXHVhY2U0XHViM2NjXHViNzdjXHViNGU0IFx1YzkxMSBcdWFjZTBcdWM3YTVcdWIwOWMgXHVhY2U0XHViM2NjXHViNzdjXHVhYzAwIFx1YzVjNlx1YjI5NCBcdWFjYmRcdWM2YjBcdWM1ZDAgKDIsIDMsIDQsIDUsIDEpIFx1YWNmYyAoNCwgNSwgMSwgMiwgMykgXHVjNzQwIFx1YmFhOFx1YjQ1MCBcdWFjMDBcdWIyYTVcdWQ1NWMgXHVhY2U0XHViM2NjXHViNzdjIFx1YzIxOFx1YzVmNFx1YjRlNFx1Yzc3NFx1YjJlNC4gXHVkNTU4XHVjOWMwXHViOWNjLCBcdWM3NzRcdWFjYmRcdWM2YjAgKDQsIDMsIDIsIDUsIDEpIFx1Yzc0MCBcdWFjMDBcdWIyYTVcdWQ1NWMgXHVhY2U0XHViM2NjXHViNzdjIFx1YzIxOFx1YzVmNFx1Yzc3NCBcdWM1NDRcdWIyYzhcdWIyZTQuIChcdWFjZTRcdWIzY2NcdWI3N2MgXHViYzg4XHVkNjM4XHVjNzU4IFx1YzIxY1x1YzExY1x1YWMwMCBcdWM3OThcdWJhYmJcdWI0MThcdWM1YjQgXHVjNzg4XHViMmU0Lik8XC9wPlxyXG5cclxuPHA+XHViOWNjXHVjNTdkIFx1YWNlNFx1YjNjY1x1Yjc3YyAxXHViYzg4IFx1YjljY1x1Yzc3NCBcdWFjZTBcdWM3YTVcdWIwOWMgXHVjMGMxXHVkNjY5XHVjNzc0XHViNzdjXHViYTc0LCAoNCwgNSwgNiwgMiwgMykgXHVjNzU4IFx1YWNlNFx1YjNjY1x1Yjc3YyBcdWMyMThcdWM1ZjRcdWM3NDQgXHViOWNjXHViNGU0IFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YjljY1x1YzU3ZCBcdWM3NzRcdWQ2YzQgNFx1YmM4OCBcdWFjZTRcdWIzY2NcdWI3N2NcdWFjMDAgXHVhY2UwXHVjN2E1XHViMDljXHViMmU0XHViYTc0LCA3XHViYzg4IFx1YWNlNFx1YjNjY1x1Yjc3Y1x1YWMwMCBcdWFkZjggXHVjNzkwXHViOWFjXHVjNWQwIFx1Yzc4OFx1YWM4YyBcdWI0MThcdWFjZTAsICg2LCAyLCAzLCA3LCA1KSBcdWFjMDAgXHVhYzAwXHViMmE1XHVkNTVjIFx1YWNlNFx1YjNjY1x1Yjc3YyBcdWMyMThcdWM1ZjRcdWM3NzQgXHViNDFjXHViMmU0LiBcdWI5Y2NcdWM1N2QgN1x1YmM4OCBcdWFjZTRcdWIzY2NcdWI3N2NcdWFjMDAgXHVjNzc0XHVkNmM0XHVjNWQwIFx1YWNlMFx1YzdhNVx1Yzc3NCBcdWIwOWNcdWIyZTRcdWJhNzQsIDhcdWJjODhcdWM3NzQgXHVhZGY4IFx1Yzc5MFx1YjlhY1x1Yjk3YyBcdWNjMjhcdWM5YzBcdWQ1NjAgXHVhYzgzXHVjNzc0XHVhY2UwICgzLCA4LCA1LCA2LCAyKSBcdWFjMDAgXHVhYzAwXHViMmE1XHVkNTVjIFx1YWNlNFx1YjNjY1x1Yjc3YyBcdWMyMThcdWM1ZjRcdWI0ZTQgXHVjOTExIFx1ZDU1OFx1YjA5OFx1YWMwMCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkXCIgc3R5bGU9XCJ3aWR0aDo0MCVcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD5cdWFjZTBcdWM3YTVcdWIwOWMgXHVhY2U0XHViM2NjXHViNzdjPFwvdGg+XHJcblx0XHRcdDx0aD5cdWMwYzggXHVhY2U0XHViM2NjXHViNzdjPFwvdGg+XHJcblx0XHRcdDx0aD5cdWFjMDBcdWIyYTVcdWQ1NWMgXHVhY2U0XHViM2NjXHViNzdjIFx1YzIxOFx1YzVmNCBcdWM5MTEgXHVkNTU4XHViMDk4PFwvdGg+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3RoZWFkPlxyXG5cdDx0Ym9keT5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdFx0PHRkPjY8XC90ZD5cclxuXHRcdFx0PHRkPig0LCA1LCA2LCAyLCAzKTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD40PFwvdGQ+XHJcblx0XHRcdDx0ZD43PFwvdGQ+XHJcblx0XHRcdDx0ZD4oNiwgMiwgMywgNywgNSk8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+NzxcL3RkPlxyXG5cdFx0XHQ8dGQ+ODxcL3RkPlxyXG5cdFx0XHQ8dGQ+KDMsIDgsIDUsIDYsIDIpPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90Ym9keT5cclxuPFwvdGFibGU+XHJcblxyXG48cD5cdWFkNTBcdWNjYjQgXHVjMjE4XHVjNWY0XHVjNzc0XHViNzdjXHViMjk0IFx1YWM4M1x1Yzc0MCBcdWFjZTBcdWM3YTVcdWIwOWMgXHVhY2U0XHViM2NjXHViNzdjXHViNGU0XHVjNzU4IFx1YmM4OFx1ZDYzOFx1Yjk3YyBcdWFjZTBcdWM3YTVcdWIwOWMgXHVjMjFjXHVjMTFjXHVjNWQwIFx1YjUzMFx1Yjc3YyBcdWM0ZjQgXHVhYzgzXHVjNzc0XHViMmU0LiBcdWM5YzFcdWM4MDRcdWM3NTggXHVjNjA4XHVjNWQwXHVjMTFjIFx1YWQ1MFx1Y2NiNCBcdWMyMThcdWM1ZjRcdWM3NDAgKDEsIDQsIDcpIFx1Yzc3NFx1YjJlNC4gXHVhZDUwXHVjY2I0IFx1YzIxOFx1YzVmNCBlXHVjNzc0IFx1YWNlNFx1YjNjY1x1Yjc3YyBcdWMyMThcdWM1ZjQgZ1x1Yjk3YyBcdWI5Y2NcdWI0ZTBcdWIyZTRcdWFjZTAgXHViOWQwXHVjNzQ0IFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMjk0XHViMzcwLCBcdWFkZjhcdWFjODNcdWM3NDAgXHVjZDA4XHVhZTMwIFx1YzBjMVx1ZDY2OVx1YzVkMFx1YzExYyBcdWMyZGNcdWM3OTFcdWQ1NzRcdWMxMWMgclx1YzVkMCBcdWQ1NzRcdWIyZjlcdWQ1NThcdWIyOTQgXHViYzI5XHViYzk1XHVjNzNjXHViODVjIFx1YWNlNFx1YjNjY1x1Yjc3Y1x1YjRlNFx1Yzc3NCBcdWFjZTBcdWM3YTVcdWIwOWMgXHVjOWMxXHVkNmM0XHVjNWQwLCBnXHVhYzAwIFx1YWMwMFx1YjJhNVx1ZDU1YyBcdWFjZTRcdWIzY2NcdWI3N2MgXHVjMjE4XHVjNWY0XHViNGU0IFx1YzkxMSBcdWQ1NThcdWIwOThcdWM3NzggXHVhY2JkXHVjNmIwXHViOTdjIFx1Yzc1OFx1YmJmOFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzc0IFx1YmIzOFx1YzgxY1x1YzVkMFx1YzExY1x1YjI5NCBcdWM4ZmNcdWM1YjRcdWM5YzQgXHVjMjE4XHVjNWY0KFx1YWMwMFx1YjJhNVx1ZDU1YyBcdWFjZTRcdWIzY2NcdWI3N2MgXHVjMjE4XHVjNWY0XHVjNzdjIFx1YzIxOFx1YjNjNCBcdWM1NDRcdWIyZDAgXHVjMjE4XHViM2M0IFx1Yzc4OFx1Yzc0YylcdWM3NDQgXHViOWNjXHViNGU0IFx1YzIxOCBcdWM3ODhcdWIyOTQgXHVhZDUwXHVjY2I0IFx1YzIxOFx1YzVmNFx1Yzc1OCBcdWMyMThcdWI5N2MgXHVjMTM4XHVjNWI0XHVjMTFjIFx1YWRmOCBcdWFjMTJcdWM3NDQgMSwwMDAsMDAwLDAwOSBcdWI4NWMgXHViMDk4XHViMjA4IFx1YjA5OFx1YmEzOFx1YzljMFx1Yjk3YyBcdWFjYzRcdWMwYjBcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHVjNzc0IFx1YzEyMFx1YzViOFx1YjQxYyBcdWQ1NjhcdWMyMTggY291bnRSZXBsYWNlbWVudCBcdWI5N2MgXHVhZDZjXHVkNjA0XHVkNTc0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5jb3VudFJlcGxhY2VtZW50KG4sIGlucHV0U2VxKVxyXG5cdDx1bD5cclxuXHRcdDxsaT5uOiBcdWM3ODVcdWI4MjUgXHVjMjE4XHVjNWY0XHVjNzU4IFx1YWUzOFx1Yzc3NC48XC9saT5cclxuXHRcdDxsaT5pbnB1dFNlcTogXHVkMDZjXHVhZTMwIFx1Yzc3OCBcdWJjMzBcdWM1ZjQ7IGlucHV0U2VxW2ldXHViMjk0IFx1Yzc4NVx1YjgyNSBcdWMyMThcdWM1ZjRcdWM3NTggXHViYzg4IFx1YzZkMFx1YzE4Y1x1Yzc3NFx1YjJlNCAoMCAmbGU7IGkgJmxlOyBuLTEpLjxcL2xpPlxyXG5cdFx0PGxpPlx1Yzc4NVx1YjgyNVx1Yzc3NCBcdWFjZTRcdWIzY2NcdWI3N2MgXHVjMjE4XHVjNWY0XHVjNzc4IFx1YWNiZFx1YzZiMCwgXHVjNzg1XHViODI1XHVjNzU4IFx1YWNlNFx1YjNjY1x1Yjc3YyBcdWMyMThcdWM1ZjRcdWM3NDQgXHViOWNjXHViNGU0IFx1YzIxOCBcdWM3ODhcdWIyOTQgXHViYWE4XHViNGUwIFx1YWQ1MFx1Y2NiNCBcdWMyMThcdWM1ZjRcdWM3NTggXHVjMjE4XHViOTdjIFx1YzEzYyBcdWIyZTRcdWM3NGNcdWM1ZDAgKFx1YWRmOCBcdWMyMThcdWIyOTQgXHViOWU0XHVjNmIwIFx1ZDA3NFx1YzIxOCBcdWM3ODhcdWM3NGMpIFx1YWRmOCBcdWFjYjBcdWFjZmNcdWI5N2MgMSwwMDAsMDAwLDAwOSBcdWI4NWMgXHViMDk4XHViMjA4IFx1YjA5OFx1YmEzOFx1YzljMFx1Yjk3YyBcdWI5YWNcdWQxMzRcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWI5Y2NcdWM1N2QgXHVjNzg1XHViODI1XHVjNzc0IFx1YWNlNFx1YjNjY1x1Yjc3YyBcdWMyMThcdWM1ZjRcdWM3NzQgXHVjNTQ0XHViMmNjIFx1YWNiZFx1YzZiMCAwXHVjNzQ0IFx1YjlhY1x1ZDEzNFx1ZDU3NFx1YzU3YyBcdWQ1NWNcdWIyZTQuIFx1Yzc4NVx1YjgyNVx1Yzc3NCBcdWFjZTRcdWIzY2NcdWI3N2MgXHVjMjE4XHVjNWY0XHVjNzc0XHVhY2UwIFx1YWNlMFx1YzdhNVx1YjA5YyBcdWFjZTRcdWIzY2NcdWI3N2NcdWFjMDAgXHVkNTU4XHViMDk4XHViM2M0IFx1YzVjNlx1YjI5NCBcdWFjYmRcdWM2YjBcdWIyOTQgMVx1Yzc0NCBcdWI5YWNcdWQxMzRcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LjxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG48XC91bD5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwIFx1Yzc4NVx1YjgyNSBcdWMyMThcdWM1ZjRcdWM3NTggXHVhZTM4XHVjNzc0IG5cdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI0NThcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IGlucHV0U2VxWzBdLCAuLi4sIGlucHV0U2VxW24tMV1cdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPmNvdW50UmVwbGFjZW1lbnRcdWQ1NjhcdWMyMThcdWM3NTggXHViOWFjXHVkMTM0XHVhYzEyXHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWRcIiBzdHlsZT1cIndpZHRoOjUwJVwiPlxyXG5cdDx0aGVhZD5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRoPlx1YzExY1x1YmUwY1x1ZDBkY1x1YzJhNFx1ZDA2YzxcL3RoPlxyXG5cdFx0XHQ8dGg+aW5wdXRTZXE8XC90aD5cclxuXHRcdFx0PHRoPlx1YjlhY1x1ZDEzNCBcdWFjMTI8XC90aD5cclxuXHRcdFx0PHRoPlx1YWQ1MFx1Y2NiNCBcdWMyMThcdWM1ZjQ8XC90aD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3RoZWFkPlxyXG5cdDx0Ym9keT5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdFx0PHRkPigxLCAyLCA3LCA2KTxcL3RkPlxyXG5cdFx0XHQ8dGQ+MjxcL3RkPlxyXG5cdFx0XHQ8dGQ+KDMsIDQsIDUpIG9yICg0LCA1LCAzKTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4yPFwvdGQ+XHJcblx0XHRcdDx0ZD4oMiwgMywgNCwgMTIsIDYsIDcsIDEpPFwvdGQ+XHJcblx0XHRcdDx0ZD4xPFwvdGQ+XHJcblx0XHRcdDx0ZD4oNSwgOCwgOSwgMTAsIDExKTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4zPFwvdGQ+XHJcblx0XHRcdDx0ZD4oNCwgNywgNCwgNyk8XC90ZD5cclxuXHRcdFx0PHRkPjA8XC90ZD5cclxuXHRcdFx0PHRkPmlucHV0U2VxXHVhYzAwIFx1YWNlNFx1YjNjY1x1Yjc3YyBcdWMyMThcdWM1ZjRcdWM3NzQgXHVjNTQ0XHViMmQ4PFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjQ8XC90ZD5cclxuXHRcdFx0PHRkPigzLCA0KTxcL3RkPlxyXG5cdFx0XHQ8dGQ+MjxcL3RkPlxyXG5cdFx0XHQ8dGQ+KDEsIDIpIG9yICgyLCAxKTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGJvZHk+XHJcbjxcL3RhYmxlPlxyXG4iLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiIsInN1YnRhc2sxIjoiPHA+NCAmbGU7IG4gJmxlOyA1MCwgMSAmbGU7IGlucHV0U2VxW2ldICZsZTsgbiszPFwvcD5cclxuIiwic3VidGFzazIiOiI8cD40ICZsZTsgbiAmbGU7IDUwLCAxICZsZTsgaW5wdXRTZXFbaV0gJmxlOyAxMDAgXHVjNzc0XHVhY2UwIFx1Y2QwOFx1YWUzMCBcdWFjZTRcdWIzY2NcdWI3N2NcdWI0ZTQgXHVjOTExIChcdWM5ODksIDEsIC4uLiwgbiBcdWJjODggXHVjOTExKSBcdWNkNWNcdWMxOGNcdWQ1NWMgbiAtIDMgXHVhYzFjXHViMjk0IFx1YWNlMFx1YzdhNVx1Yzc3NCBcdWIwOThcdWM5YzAgXHVjNTRhXHVjNTU4XHViMmU0LjxcL3A+XHJcbiIsInN1YnRhc2szIjoiPHA+biAmbGU7IDEwMCwwMDAmbmJzcDsxICZsZTsgaW5wdXRTZXFbaV0gJmxlOyAyNTAsMDAwPFwvcD5cclxuIiwic3VidGFzazQiOiI8cD5uICZsZTsgMTAwLDAwMCZuYnNwOzEgJmxlOyBpbnB1dFNlcVtpXSAmbGU7IDEsMDAwLDAwMCwwMDA8XC9wPlxyXG4ifSx7InByb2JsZW1faWQiOiIxMDA3NCIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IkdvbmRvbGEgLSBDb3VudCBSZXBsYWNlbWVudCBTZXF1ZW5jZXMiLCJkZXNjcmlwdGlvbiI6IjxwPk1hby1Lb25nIEdvbmRvbGEgaXMgYSBmYW1vdXMgYXR0cmFjdGlvbiBpbiBUYWlwZWkuIFRoZSBnb25kb2xhIHN5c3RlbSBjb25zaXN0cyBvZiBhIGNpcmN1bGFyIHJhaWwsIGEgc2luZ2xlIHN0YXRpb24sIGFuZCBuIGdvbmRvbGFzIG51bWJlcmVkIGNvbnNlY3V0aXZlbHkgZnJvbSAxIHRvIG4gcnVubmluZyBhcm91bmQgdGhlIHJhaWwgaW4gYSBmaXhlZCBkaXJlY3Rpb24uIEFmdGVyIGdvbmRvbGEgaSBwYXNzZXMgdGhlIHN0YXRpb24sIHRoZSBuZXh0IGdvbmRvbGEgdG8gcGFzcyB0aGUgc3RhdGlvbiB3aWxsIGJlIGdvbmRvbGEgaSsxIGlmIGkgJmx0OyBuLCBvciBnb25kb2xhIDEgaWYgaSA9IG4uPFwvcD5cclxuXHJcbjxwPkdvbmRvbGFzIG1heSBicmVhayBkb3duLiBMdWNraWx5IHdlIGhhdmUgYW4gaW5maW5pdGUgc3VwcGx5IG9mIHNwYXJlIGdvbmRvbGFzLCB3aGljaCBhcmUgbnVtYmVyZWQgbisxLCBuKzIsIGFuZCBzbyBvbi4gV2hlbiBhIGdvbmRvbGEgYnJlYWtzIGRvd24gd2UgcmVwbGFjZSBpdCAoaW4gdGhlIHNhbWUgcG9zaXRpb24gb24gdGhlIHRyYWNrKSB3aXRoIHRoZSBmaXJzdCBhdmFpbGFibGUgc3BhcmUgZ29uZG9sYSwgdGhhdCBpcywgdGhlIG9uZSB3aXRoIHRoZSBsb3dlc3QgbnVtYmVyLiBGb3IgZXhhbXBsZSwgaWYgdGhlcmUgYXJlIGZpdmUgZ29uZG9sYXMgYW5kIGdvbmRvbGEgMSBicmVha3MgZG93biwgdGhlbiB3ZSB3aWxsIHJlcGxhY2UgaXQgd2l0aCBnb25kb2xhIDYuPFwvcD5cclxuXHJcbjxwPllvdSBsaWtlIHRvIHN0YW5kIGF0IHRoZSBzdGF0aW9uIGFuZCB3YXRjaCB0aGUgZ29uZG9sYXMgYXMgdGhleSBwYXNzIGJ5LiBBIGdvbmRvbGEgc2VxdWVuY2UgaXMgYSBzZXF1ZW5jZSBvZiBuIG51bWJlcnMgb2YgZ29uZG9sYXMgdGhhdCBwYXNzIHRoZSBzdGF0aW9uLiBJdCBpcyBwb3NzaWJsZSB0aGF0IG9uZSBvciBtb3JlIGdvbmRvbGFzIGJyb2tlIGRvd24gKGFuZCB3ZXJlIHJlcGxhY2VkKSBiZWZvcmUgeW91IGFycml2ZWQsIGJ1dCBub25lIG9mIHRoZSBnb25kb2xhcyBicmVhayBkb3duIHdoaWxlIHlvdSBhcmUgd2F0Y2hpbmcuPFwvcD5cclxuXHJcbjxwPk5vdGUgdGhhdCB0aGUgc2FtZSBjb25maWd1cmF0aW9uIG9mIGdvbmRvbGFzIG9uIHRoZSByYWlsIGNhbiBnaXZlIG11bHRpcGxlIGdvbmRvbGEgc2VxdWVuY2VzLCBkZXBlbmRpbmcgb24gd2hpY2ggZ29uZG9sYSBwYXNzZXMgZmlyc3Qgd2hlbiB5b3UgYXJyaXZlIGF0IHRoZSBzdGF0aW9uLiBGb3IgZXhhbXBsZSwgaWYgbm9uZSBvZiB0aGUgZ29uZG9sYXMgaGF2ZSBicm9rZW4gZG93biB0aGVuIGJvdGggKDIsIDMsIDQsIDUsIDEpIGFuZCAoNCwgNSwgMSwgMiwgMykgYXJlIHBvc3NpYmxlIGdvbmRvbGEgc2VxdWVuY2VzLCBidXQgKDQsIDMsIDIsIDUsIDEpIGlzIG5vdCAoYmVjYXVzZSB0aGUgZ29uZG9sYXMgYXBwZWFyIGluIHRoZSB3cm9uZyBvcmRlcikuPFwvcD5cclxuXHJcbjxwPklmIGdvbmRvbGEgMSBicmVha3MgZG93biwgdGhlbiB3ZSBtaWdodCBub3cgb2JzZXJ2ZSB0aGUgZ29uZG9sYSBzZXF1ZW5jZSAoNCwgNSwgNiwgMiwgMykuIElmIGdvbmRvbGEgNCBicmVha3MgZG93biBuZXh0LCB3ZSByZXBsYWNlIGl0IHdpdGggZ29uZG9sYSA3IGFuZCB3ZSBtaWdodCBvYnNlcnZlIHRoZSBnb25kb2xhIHNlcXVlbmNlICg2LCAyLCAzLCA3LCA1KS4gSWYgZ29uZG9sYSA3IGJyZWFrcyBkb3duIGFmdGVyIHRoaXMsIHdlIHJlcGxhY2UgaXQgd2l0aCBnb25kb2xhIDggYW5kIHdlIG1heSBub3cgb2JzZXJ2ZSB0aGUgZ29uZG9sYSBzZXF1ZW5jZSAoMywgOCwgNSwgNiwgMikuPFwvcD5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkXCIgc3R5bGU9XCJ3aWR0aDo0MCVcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD5icm9rZW4gZ29uZG9sYTxcL3RoPlxyXG5cdFx0XHQ8dGg+bmV3IGdvbmRvbGE8XC90aD5cclxuXHRcdFx0PHRoPnBvc3NpYmxlIGdvbmRvbGEgc2VxdWVuY2U8XC90aD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGhlYWQ+XHJcblx0PHRib2R5PlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+MTxcL3RkPlxyXG5cdFx0XHQ8dGQ+NjxcL3RkPlxyXG5cdFx0XHQ8dGQ+KDQsIDUsIDYsIDIsIDMpPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjQ8XC90ZD5cclxuXHRcdFx0PHRkPjc8XC90ZD5cclxuXHRcdFx0PHRkPig2LCAyLCAzLCA3LCA1KTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD43PFwvdGQ+XHJcblx0XHRcdDx0ZD44PFwvdGQ+XHJcblx0XHRcdDx0ZD4oMywgOCwgNSwgNiwgMik8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3Rib2R5PlxyXG48XC90YWJsZT5cclxuXHJcbjxwPkEgcmVwbGFjZW1lbnQgc2VxdWVuY2UgaXMgYSBzZXF1ZW5jZSBjb25zaXN0aW5nIG9mIHRoZSBudW1iZXJzIG9mIHRoZSBnb25kb2xhcyB0aGF0IGhhdmUgYnJva2VuIGRvd24sIGluIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGJyZWFrIGRvd24uIEluIHRoZSBwcmV2aW91cyBleGFtcGxlIHRoZSByZXBsYWNlbWVudCBzZXF1ZW5jZSBpcyAoMSwgNCwgNykuIEEgcmVwbGFjZW1lbnQgc2VxdWVuY2UgciBwcm9kdWNlcyBhIGdvbmRvbGEgc2VxdWVuY2UgZyBpZiwgYWZ0ZXIgZ29uZG9sYXMgYnJlYWsgZG93biBhY2NvcmRpbmcgdG8gdGhlIHJlcGxhY2VtZW50IHNlcXVlbmNlIHIsIHRoZSBnb25kb2xhIHNlcXVlbmNlIGcgbWF5IGJlIG9ic2VydmVkLjxcL3A+XHJcblxyXG48cD5Zb3UgbXVzdCBjb3VudCB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIHJlcGxhY2VtZW50IHNlcXVlbmNlcyB0aGF0IHByb2R1Y2UgYSBnaXZlbiBzZXF1ZW5jZSAod2hpY2ggbWF5IG9yIG1heSBub3QgYmUgYSBnb25kb2xhIHNlcXVlbmNlKSwgbW9kdWxvIDEsMDAwLDAwMCwwMDkuIFlvdSBuZWVkIHRvIGltcGxlbWVudCBhIGZ1bmN0aW9uIGNvdW50UmVwbGFjZW1lbnQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+Y291bnRSZXBsYWNlbWVudChuLCBpbnB1dFNlcSlcclxuXHQ8dWw+XHJcblx0XHQ8bGk+bjogdGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgc2VxdWVuY2UuPFwvbGk+XHJcblx0XHQ8bGk+aW5wdXRTZXE6IGFycmF5IG9mIGxlbmd0aCA7IGlucHV0U2VxW2ldIGlzIGVsZW1lbnQgb2YgdGhlIGlucHV0IHNlcXVlbmNlLCBmb3IgMCAmbGU7IGkgJmxlOyBuLTEuPFwvbGk+XHJcblx0XHQ8bGk+SWYgdGhlIGlucHV0IHNlcXVlbmNlIGlzIGEgZ29uZG9sYSBzZXF1ZW5jZSwgdGhlbiBjb3VudCB0aGUgbnVtYmVyIG9mIHJlcGxhY2VtZW50IHNlcXVlbmNlcyB0aGF0IHByb2R1Y2UgdGhpcyBnb25kb2xhIHNlcXVlbmNlICh3aGljaCBjb3VsZCBiZSBleHRyZW1lbHkgbGFyZ2UpLCBhbmQgcmV0dXJuIHRoaXMgbnVtYmVyIG1vZHVsbyAxLDAwMCwwMDAsMDA5LiBJZiB0aGUgaW5wdXQgc2VxdWVuY2UgaXMgbm90IGEgZ29uZG9sYSBzZXF1ZW5jZSwgdGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gMC4gSWYgdGhlIGlucHV0IHNlcXVlbmNlIGlzIGEgZ29uZG9sYSBzZXF1ZW5jZSBidXQgbm8gZ29uZG9sYXMgYnJva2UgZG93biwgdGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gMS48XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuPFwvdWw+XHJcbiIsImlucHV0IjoiPHA+bGluZSAxOiBuLCB0aGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBzZXF1ZW5jZS48XC9wPlxyXG5cclxuPHA+bGluZSAyOiB0aGlzIGxpbmUgY29udGFpbnMgaW5wdXRTZXFbMF0sIC4uLiwgaW5wdXRTZXFbbi0xXS48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5QcmludCByZXR1cm4gdmFsdWUgb2YgZnVuY3Rpb24gY291bnRSZXBsYWNlbWVudC48XC9wPlxyXG4iLCJoaW50IjoiPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWRcIiBzdHlsZT1cIndpZHRoOjQxMXB4XCI+XHJcblx0PHRoZWFkPlxyXG5cclxuXHRcdDx0cj5cclxuPHRoPnN1YnRhc2s8XC90aD5cclxuXHRcdFx0PHRoPmlucHV0U2VxPFwvdGg+XHJcblx0XHRcdDx0aD5yZXR1cm4gdmFsdWU8XC90aD5cclxuXHRcdFx0PHRoPnJlcGxhY2VtZW50IHNlcXVlbmNlPFwvdGg+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90aGVhZD5cclxuXHQ8dGJvZHk+XHJcblx0XHQ8dHI+PHRkPjE8XC90ZD5cclxuXHRcdFx0PHRkPigxLCAyLCA3LCA2KTxcL3RkPlxyXG5cdFx0XHQ8dGQ+MjxcL3RkPlxyXG5cdFx0XHQ8dGQ+KDMsIDQsIDUpIG9yICg0LCA1LCAzKTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+PHRkPjI8XC90ZD5cclxuXHRcdFx0PHRkPigyLCAzLCA0LCAxMiwgNiwgNywgMSk8XC90ZD5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdFx0PHRkPig1LCA4LCA5LCAxMCwgMTEpPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj48dGQ+MzxcL3RkPlxyXG5cdFx0XHQ8dGQ+KDQsIDcsIDQsIDcpPFwvdGQ+XHJcblx0XHRcdDx0ZD4wPFwvdGQ+XHJcblx0XHRcdDx0ZD5pbnB1dFNlcSBpcyBub3QgYSBnb25kb2xhIHNlcXVlbmNlPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj48dGQ+NDxcL3RkPlxyXG5cdFx0XHQ8dGQ+KDMsIDQpPFwvdGQ+XHJcblx0XHRcdDx0ZD4yPFwvdGQ+XHJcblx0XHRcdDx0ZD4oMSwgMikgb3IgKDIsIDEpPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90Ym9keT5cclxuPFwvdGFibGU+XHJcbiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiRW5nbGlzaCIsInN1YnRhc2sxIjoiPHA+NCAmbGU7IG4gJmxlOyA1MCwgMSAmbGU7IGlucHV0U2VxW2ldICZsZTsgbiszPFwvcD5cclxuIiwic3VidGFzazIiOiI8cD40ICZsZTsgbiAmbGU7IDUwLCAxICZsZTsgaW5wdXRTZXFbaV0gJmxlOyAxMDAsIGFuZCBhdCBsZWFzdCBuIC0gMyBvZiB0aGUgaW5pdGlhbCBnb25kb2xhcyAxLCAuLi4sIG4gZGlkIG5vdCBicmVhayBkb3duLjxcL3A+XHJcbiIsInN1YnRhc2szIjoiPHA+biAmbGU7IDEwMCwwMDAmbmJzcDsxICZsZTsgaW5wdXRTZXFbaV0gJmxlOyAyNTAsMDAwPFwvcD5cclxuIiwic3VidGFzazQiOiI8cD5uICZsZTsgMTAwLDAwMCZuYnNwOzEgJmxlOyBpbnB1dFNlcVtpXSAmbGU7IDEsMDAwLDAwMCwwMDA8XC9wPlxyXG4ifV0=

출처

Olympiad > International Olympiad in Informatics > IOI 2014 > Day 2 4-3번

  • 문제를 만든 사람: Michal Forišek

채점 및 기타 정보

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