시간 제한메모리 제한제출정답맞힌 사람정답 비율
1.5 초 (하단 참고)512 MB76242029.412%

문제

노드가 $n$개인 트리 $T$가 있다. 노드는 $1$부터 $n$까지 번호가 붙어있고, 각 노드에는 영문 대문자 알파벳 ('A' - 'Z') 레이블이 붙어있다. Bob은 $T$에서 길이가 가장 긴 단순 경로를 찾는 문제에 관심이 많다. 단순 경로란, 그래프/트리의 같은 노드를 두 번 이상 방문하지 않는 경로를 말한다.

옆에서 지켜보던 Alice는 Bob에게 아래 정의에 따라 "좋은 단순 경로"를 찾아보라고 했다. 임의의 단순 경로 $P$에 대해, 만약 $P$에 속한 노드들의 레이블을 순서대로 나열하여 문자열을 만들었을 때 같은 알파벳이 연속으로 반복되지 않으면 $P$를 "좋은 단순 경로"라 한다.

예를 들어 위의 트리는 $7$개의 노드를 포함하고 있다.

  • 경로 $1 \to 5 \to 7$은 노드 $3$개를 포함하는 단순 경로이지만 노드들의 알파벳을 나열하면 "AAZ"가 되어 'A'가 연속으로 반복되므로 "좋은 단순 경로"가 아니다.
  • 경로 $3 \to 2 \to 1$은 노드 $3$개를 포함하는 좋은 단순 경로이다. 노드들의 알파벳을 나열하면 "AXA"가 되고 같은 알파벳이 여러 번 등장하지만 연속으로 반복되지 않는다.
  • 경로 $3 \to 2 \to 1 \to 4$와 경로 $4 \to 1 \to 2 \to 3$은 노드 $4$개를 포함하는 좋은 단순 경로이다. 단, 이 두 개의 경로는 같은 노드들을 포함하므로 같은 경로로 간주한다. (예제 입출력 참고)
  • 경로 $7$ 혹은 경로 $4$ 처럼 노드를 $1$개만 포함하는 좋은 단순 경로도 존재한다.
  • 이 트리에서 가장 긴 좋은 단순 경로의 길이는 $4$이며, 길이가 $4$인 좋은 단순 경로는 단 하나 존재한다.

Alice와 Bob은 $T$에서 가장 긴 좋은 단순 경로의 길이가 무엇인지, 그리고 가장 긴 좋은 단순 경로의 개수가 몇 개인지 궁금해졌다. 둘을 도와 이 문제를 풀어보자.

입력

첫 줄에 테스트 케이스의 수 $T$가 주어진다

각 테스트 케이스는 세 줄에 걸쳐 주어진다. 첫 줄에 노드의 개수 $n$이 주어진다. 둘째 줄에 각 노드의 알파벳 레이블이 공백없이 길이 $n$인 문자열 형태로 주어진다. 셋째 줄에 각 노드의 부모 노드의 번호가 공백으로 구분되어 주어진다. 루트 노드의 부모는 $0$번으로 주어진다.

출력

각 테스트 케이스의 정답인 두 정수를 공백으로 구분하여 각 줄에 출력한다.

첫 번째 정수는 가장 긴 좋은 단순 경로의 길이 (노드의 수)를 나타내고, 두 번째 수는 서로 다른 좋은 단순 경로의 개수를 나타낸다.

제한

  • $1 ≤ T ≤ 10$
  • 각 노드의 레이블은 알파벳 대문자 ('A' - 'Z')이다.

서브태스크 1 (10점)

  • $1 ≤ n ≤ 1\,000$

서브태스크 2 (20점)

  • $1 ≤ n ≤ 100\,000$

예제 입력 1

6
7
AXAYABZ
0 1 2 1 1 5 5
7
QXZQQPZ
0 1 2 1 1 5 5
5
LGBOJ
4 4 4 0 4
5
AAABC
3 3 0 1 2
7
GGGGGGG
0 1 2 1 1 5 5
10
UUQYQYQQQU
3 8 8 8 2 8 3 0 6 8

예제 출력 1

4 1
3 2
3 6
2 2
1 7
5 1

예제 1: 본문에서 다루었다.

예제 2: 노드의 알파벳 레이블을 제외하면 예제 1의 트리와 구조가 같다. 길이가 $3$인 두 개의 좋은 단순 경로는: $1\to 2 \to 3$과 $6 \to 5 \to 7$이다. 

예제 3: 이 트리의 길이 $3$인 모든 단순 경로가 좋은 단순 경로이다.

예제 4: $1 \to 4$와 $2 \to 5$ 두 개의 좋은 단순 경로가 가장 긴 단순 경로이다.

예제 5: 본문에서 언급된 것 처럼 길이가 $1$인 좋은 단순 경로도 존재할 수 있다.

W3sicHJvYmxlbV9pZCI6IjI1MTIzIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHVjODhiXHVjNzQwIFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWMiLCJkZXNjcmlwdGlvbiI6IjxwPlx1YjE3OFx1YjRkY1x1YWMwMCAkbiRcdWFjMWNcdWM3NzggXHVkMmI4XHViOWFjICRUJFx1YWMwMCBcdWM3ODhcdWIyZTQuIFx1YjE3OFx1YjRkY1x1YjI5NCAkMSRcdWJkODBcdWQxMzAgJG4kXHVhZTRjXHVjOWMwIFx1YmM4OFx1ZDYzOFx1YWMwMCBcdWJkOTlcdWM1YjRcdWM3ODhcdWFjZTAsIFx1YWMwMSBcdWIxNzhcdWI0ZGNcdWM1ZDBcdWIyOTQgXHVjNjAxXHViYjM4IFx1YjMwMFx1YmIzOFx1Yzc5MCBcdWM1NGNcdWQzMGNcdWJjYjMgKCYjMzk7PGNvZGU+QTxcL2NvZGU+JiMzOTsgLSAmIzM5Ozxjb2RlPlo8XC9jb2RlPiYjMzk7KSBcdWI4MDhcdWM3NzRcdWJlMTRcdWM3NzQgXHViZDk5XHVjNWI0XHVjNzg4XHViMmU0LiBCb2JcdWM3NDAgJFQkXHVjNWQwXHVjMTFjIFx1YWUzOFx1Yzc3NFx1YWMwMCBcdWFjMDBcdWM3YTUgXHVhZTM0IFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWNcdWI5N2MgXHVjYzNlXHViMjk0IFx1YmIzOFx1YzgxY1x1YzVkMCBcdWFkMDBcdWMyZWNcdWM3NzQgXHViOWNlXHViMmU0LiBcdWIyZThcdWMyMWMgXHVhY2JkXHViODVjXHViNzgwLCBcdWFkZjhcdWI3OThcdWQ1MDRcL1x1ZDJiOFx1YjlhY1x1Yzc1OCBcdWFjMTlcdWM3NDAgXHViMTc4XHViNGRjXHViOTdjIFx1YjQ1MCBcdWJjODggXHVjNzc0XHVjMGMxIFx1YmMyOVx1YmIzOFx1ZDU1OFx1YzljMCBcdWM1NGFcdWIyOTQgXHVhY2JkXHViODVjXHViOTdjIFx1YjlkMFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNjA2XHVjNWQwXHVjMTFjIFx1YzljMFx1Y2YxY1x1YmNmNFx1YjM1OCBBbGljZVx1YjI5NCBCb2JcdWM1ZDBcdWFjOGMgXHVjNTQ0XHViNzk4IFx1YzgxNVx1Yzc1OFx1YzVkMCBcdWI1MzBcdWI3N2MgJnF1b3Q7XHVjODhiXHVjNzQwIFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWMmcXVvdDtcdWI5N2MgXHVjYzNlXHVjNTQ0XHViY2Y0XHViNzdjXHVhY2UwIFx1ZDU4OFx1YjJlNC4gXHVjNzg0XHVjNzU4XHVjNzU4IFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWMgJFAkXHVjNWQwIFx1YjMwMFx1ZDU3NCwgXHViOWNjXHVjNTdkICRQJFx1YzVkMCBcdWMxOGRcdWQ1NWMgXHViMTc4XHViNGRjXHViNGU0XHVjNzU4IFx1YjgwOFx1Yzc3NFx1YmUxNFx1Yzc0NCBcdWMyMWNcdWMxMWNcdWIzMDBcdWI4NWMgXHViMDk4XHVjNWY0XHVkNTU4XHVjNWVjIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0NCBcdWI5Y2NcdWI0ZTRcdWM1YzhcdWM3NDQgXHViNTRjIFx1YWMxOVx1Yzc0MCBcdWM1NGNcdWQzMGNcdWJjYjNcdWM3NzQgXHVjNWYwXHVjMThkXHVjNzNjXHViODVjIFx1YmMxOFx1YmNmNVx1YjQxOFx1YzljMCBcdWM1NGFcdWM3M2NcdWJhNzQgJFAkXHViOTdjICZxdW90O1x1Yzg4Ylx1Yzc0MCBcdWIyZThcdWMyMWMgXHVhY2JkXHViODVjJnF1b3Q7XHViNzdjIFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC83NmYxNmI4ZC0xYmFmLTQ2NjgtOWIwMS1kNTM2MWJiMzMxYTVcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwiaGVpZ2h0OiAyODNweDsgd2lkdGg6IDQwOHB4O1wiIFwvPjxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0IFx1YzcwNFx1Yzc1OCBcdWQyYjhcdWI5YWNcdWIyOTQgJDckXHVhYzFjXHVjNzU4IFx1YjE3OFx1YjRkY1x1Yjk3YyBcdWQzZWNcdWQ1NjhcdWQ1NThcdWFjZTAgXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPlx1YWNiZFx1Yjg1YyAkMSBcXHRvIDUgXFx0byA3JFx1Yzc0MCBcdWIxNzhcdWI0ZGMgJDMkXHVhYzFjXHViOTdjIFx1ZDNlY1x1ZDU2OFx1ZDU1OFx1YjI5NCBcdWIyZThcdWMyMWMgXHVhY2JkXHViODVjXHVjNzc0XHVjOWMwXHViOWNjIFx1YjE3OFx1YjRkY1x1YjRlNFx1Yzc1OCBcdWM1NGNcdWQzMGNcdWJjYjNcdWM3NDQgXHViMDk4XHVjNWY0XHVkNTU4XHViYTc0ICZxdW90Ozxjb2RlPkFBWjxcL2NvZGU+JnF1b3Q7XHVhYzAwIFx1YjQxOFx1YzViNCAmIzM5Ozxjb2RlPkE8XC9jb2RlPiYjMzk7XHVhYzAwIFx1YzVmMFx1YzE4ZFx1YzczY1x1Yjg1YyBcdWJjMThcdWJjZjVcdWI0MThcdWJiYzBcdWI4NWMgJnF1b3Q7XHVjODhiXHVjNzQwIFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWMmcXVvdDtcdWFjMDAgXHVjNTQ0XHViMmM4XHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWFjYmRcdWI4NWMgJDMgXFx0byAyIFxcdG8gMSRcdWM3NDAgXHViMTc4XHViNGRjICQzJFx1YWMxY1x1Yjk3YyBcdWQzZWNcdWQ1NjhcdWQ1NThcdWIyOTQgXHVjODhiXHVjNzQwIFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWNcdWM3NzRcdWIyZTQuIFx1YjE3OFx1YjRkY1x1YjRlNFx1Yzc1OCBcdWM1NGNcdWQzMGNcdWJjYjNcdWM3NDQgXHViMDk4XHVjNWY0XHVkNTU4XHViYTc0ICZxdW90Ozxjb2RlPkFYQTxcL2NvZGU+JnF1b3Q7XHVhYzAwIFx1YjQxOFx1YWNlMCBcdWFjMTlcdWM3NDAgXHVjNTRjXHVkMzBjXHViY2IzXHVjNzc0IFx1YzVlY1x1YjdlYyBcdWJjODggXHViNGYxXHVjN2E1XHVkNTU4XHVjOWMwXHViOWNjIFx1YzVmMFx1YzE4ZFx1YzczY1x1Yjg1YyBcdWJjMThcdWJjZjVcdWI0MThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWFjYmRcdWI4NWMgJDMgXFx0byAyIFxcdG8gMSBcXHRvIDQkXHVjNjQwIFx1YWNiZFx1Yjg1YyAkNCBcXHRvIDEgXFx0byAyIFxcdG8gMyRcdWM3NDAgXHViMTc4XHViNGRjICQ0JFx1YWMxY1x1Yjk3YyBcdWQzZWNcdWQ1NjhcdWQ1NThcdWIyOTQgXHVjODhiXHVjNzQwIFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWNcdWM3NzRcdWIyZTQuIFx1YjJlOCwgXHVjNzc0IFx1YjQ1MCBcdWFjMWNcdWM3NTggXHVhY2JkXHViODVjXHViMjk0IFx1YWMxOVx1Yzc0MCBcdWIxNzhcdWI0ZGNcdWI0ZTRcdWM3NDQgXHVkM2VjXHVkNTY4XHVkNTU4XHViYmMwXHViODVjIFx1YWMxOVx1Yzc0MCBcdWFjYmRcdWI4NWNcdWI4NWMgXHVhYzA0XHVjOGZjXHVkNTVjXHViMmU0LiAoXHVjNjA4XHVjODFjIFx1Yzc4NVx1Y2Q5Y1x1YjgyNSBcdWNjMzhcdWFjZTApPFwvbGk+XHJcblx0PGxpPlx1YWNiZFx1Yjg1YyAkNyQgXHVkNjM5XHVjNzQwIFx1YWNiZFx1Yjg1YyAkNCQgXHVjYzk4XHViN2ZjIFx1YjE3OFx1YjRkY1x1Yjk3YyAkMSRcdWFjMWNcdWI5Y2MgXHVkM2VjXHVkNTY4XHVkNTU4XHViMjk0IFx1Yzg4Ylx1Yzc0MCBcdWIyZThcdWMyMWMgXHVhY2JkXHViODVjXHViM2M0IFx1Yzg3NFx1YzdhY1x1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVjNzc0IFx1ZDJiOFx1YjlhY1x1YzVkMFx1YzExYyBcdWFjMDBcdWM3YTUgXHVhZTM0IFx1Yzg4Ylx1Yzc0MCBcdWIyZThcdWMyMWMgXHVhY2JkXHViODVjXHVjNzU4IFx1YWUzOFx1Yzc3NFx1YjI5NCAkNCRcdWM3NzRcdWJhNzAsIFx1YWUzOFx1Yzc3NFx1YWMwMCAkNCRcdWM3NzggXHVjODhiXHVjNzQwIFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWNcdWIyOTQgXHViMmU4IFx1ZDU1OFx1YjA5OCBcdWM4NzRcdWM3YWNcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+QWxpY2VcdWM2NDAgQm9iXHVjNzQwICRUJFx1YzVkMFx1YzExYyBcdWFjMDBcdWM3YTUgXHVhZTM0IFx1Yzg4Ylx1Yzc0MCBcdWIyZThcdWMyMWMgXHVhY2JkXHViODVjXHVjNzU4IFx1YWUzOFx1Yzc3NFx1YWMwMCBcdWJiMzRcdWM1YzdcdWM3NzhcdWM5YzAsIFx1YWRmOFx1YjlhY1x1YWNlMCBcdWFjMDBcdWM3YTUgXHVhZTM0IFx1Yzg4Ylx1Yzc0MCBcdWIyZThcdWMyMWMgXHVhY2JkXHViODVjXHVjNzU4IFx1YWMxY1x1YzIxOFx1YWMwMCBcdWJhODcgXHVhYzFjXHVjNzc4XHVjOWMwIFx1YWQ4MVx1YWUwOFx1ZDU3NFx1Yzg0Y1x1YjJlNC4gXHViNDU4XHVjNzQ0IFx1YjNjNFx1YzY0MCBcdWM3NzQgXHViYjM4XHVjODFjXHViOTdjIFx1ZDQ4MFx1YzViNFx1YmNmNFx1Yzc5MC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYiBcdWM5MDRcdWM1ZDAgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWMyMTggJFQkXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNDxcL3A+XHJcblxyXG48cD5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YjI5NCBcdWMxMzggXHVjOTA0XHVjNWQwIFx1YWM3OFx1Y2NkMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Y2NhYiBcdWM5MDRcdWM1ZDAgXHViMTc4XHViNGRjXHVjNzU4IFx1YWMxY1x1YzIxOCAkbiRcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWI0NThcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YWMwMSBcdWIxNzhcdWI0ZGNcdWM3NTggXHVjNTRjXHVkMzBjXHViY2IzIFx1YjgwOFx1Yzc3NFx1YmUxNFx1Yzc3NCBcdWFjZjVcdWJjMzFcdWM1YzZcdWM3NzQgXHVhZTM4XHVjNzc0ICRuJFx1Yzc3OCBcdWJiMzhcdWM3OTBcdWM1ZjQgXHVkNjE1XHVkMGRjXHViODVjIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVjMTRiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWFjMDEgXHViMTc4XHViNGRjXHVjNzU4IFx1YmQ4MFx1YmFhOCBcdWIxNzhcdWI0ZGNcdWM3NTggXHViYzg4XHVkNjM4XHVhYzAwIFx1YWNmNVx1YmMzMVx1YzczY1x1Yjg1YyBcdWFkNmNcdWJkODRcdWI0MThcdWM1YjQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWI4ZThcdWQyYjggXHViMTc4XHViNGRjXHVjNzU4IFx1YmQ4MFx1YmFhOFx1YjI5NCAkMCRcdWJjODhcdWM3M2NcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YzgxNVx1YjJmNVx1Yzc3OCBcdWI0NTAgXHVjODE1XHVjMjE4XHViOTdjIFx1YWNmNVx1YmMzMVx1YzczY1x1Yjg1YyBcdWFkNmNcdWJkODRcdWQ1NThcdWM1ZWMgXHVhYzAxIFx1YzkwNFx1YzVkMCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjODE1XHVjMjE4XHViMjk0IFx1YWMwMFx1YzdhNSBcdWFlMzQgXHVjODhiXHVjNzQwIFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWNcdWM3NTggXHVhZTM4XHVjNzc0IChcdWIxNzhcdWI0ZGNcdWM3NTggXHVjMjE4KVx1Yjk3YyBcdWIwOThcdWQwYzBcdWIwYjRcdWFjZTAsIFx1YjQ1MCBcdWJjODhcdWM5ZjggXHVjMjE4XHViMjk0IFx1YzExY1x1Yjg1YyBcdWIyZTRcdWI5NzggXHVjODhiXHVjNzQwIFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWNcdWM3NTggXHVhYzFjXHVjMjE4XHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiOFx1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4iLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+JDEgJmxlOyBUICZsZTsgMTAkPFwvbGk+XHJcblx0PGxpPlx1YWMwMSBcdWIxNzhcdWI0ZGNcdWM3NTggXHViODA4XHVjNzc0XHViZTE0XHVjNzQwIFx1YzU0Y1x1ZDMwY1x1YmNiMyBcdWIzMDBcdWJiMzhcdWM3OTAgKCYjMzk7PGNvZGU+QTxcL2NvZGU+JiMzOTsgLSAmIzM5Ozxjb2RlPlo8XC9jb2RlPiYjMzk7KVx1Yzc3NFx1YjJlNC48XC9saT5cclxuPFwvdWw+XHJcbiIsInN1YnRhc2sxIjoiPHVsPlxyXG5cdDxsaT4kMSAmbGU7IG4gJmxlOyAxXFwsMDAwJDxcL2xpPlxyXG48XC91bD5cclxuIiwic3VidGFzazIiOiI8dWw+XHJcblx0PGxpPiQxICZsZTsgbiAmbGU7IDEwMFxcLDAwMCQ8XC9saT5cclxuPFwvdWw+XHJcbiIsInNhbXBsZV9leHBsYWluXzEiOiI8cD5cdWM2MDhcdWM4MWMgMTogXHViY2Y4XHViYjM4XHVjNWQwXHVjMTFjIFx1YjJlNFx1YjhlOFx1YzVjOFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNjA4XHVjODFjIDI6IFx1YjE3OFx1YjRkY1x1Yzc1OCBcdWM1NGNcdWQzMGNcdWJjYjMgXHViODA4XHVjNzc0XHViZTE0XHVjNzQ0IFx1YzgxY1x1YzY3OFx1ZDU1OFx1YmE3NCBcdWM2MDhcdWM4MWMgMVx1Yzc1OCBcdWQyYjhcdWI5YWNcdWM2NDAgXHVhZDZjXHVjODcwXHVhYzAwIFx1YWMxOVx1YjJlNC4gXHVhZTM4XHVjNzc0XHVhYzAwICQzJFx1Yzc3OCBcdWI0NTAgXHVhYzFjXHVjNzU4IFx1Yzg4Ylx1Yzc0MCBcdWIyZThcdWMyMWMgXHVhY2JkXHViODVjXHViMjk0OiAkMVxcdG8gMiBcXHRvIDMkXHVhY2ZjICQ2IFxcdG8gNSBcXHRvIDckXHVjNzc0XHViMmU0LiZuYnNwOzxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcL2Q3NTg5MTJkLTdkMmMtNDg3ZS05OTFhLWViMThiNjNlMTA3NFwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJoZWlnaHQ6IDI4M3B4OyB3aWR0aDogNDA4cHg7XCIgXC8+PFwvcD5cclxuXHJcbjxwPlx1YzYwOFx1YzgxYyAzOiBcdWM3NzQgXHVkMmI4XHViOWFjXHVjNzU4IFx1YWUzOFx1Yzc3NCAkMyRcdWM3NzggXHViYWE4XHViNGUwIFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWNcdWFjMDAgXHVjODhiXHVjNzQwIFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWNcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvYWYxYzNjMzAtMzQ1Ny00ZTcyLTk0YjQtMjRhNjNlODUzNWI1XC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cImhlaWdodDogMTg4cHg7IHdpZHRoOiAyOTZweDtcIiBcLz48XC9wPlxyXG5cclxuPHA+XHVjNjA4XHVjODFjIDQ6ICQxIFxcdG8gNCRcdWM2NDAgJDIgXFx0byA1JCBcdWI0NTAgXHVhYzFjXHVjNzU4IFx1Yzg4Ylx1Yzc0MCBcdWIyZThcdWMyMWMgXHVhY2JkXHViODVjXHVhYzAwIFx1YWMwMFx1YzdhNSBcdWFlMzQgXHViMmU4XHVjMjFjIFx1YWNiZFx1Yjg1Y1x1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9lMWQ5NWVjOS1jN2E1LTRjOTUtOTFlZC0yMDk2ZDMzODFmYTBcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwiaGVpZ2h0OiAyNzFweDsgd2lkdGg6IDI1NnB4O1wiIFwvPjxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWM4MWMgNTogXHViY2Y4XHViYjM4XHVjNWQwXHVjMTFjIFx1YzViOFx1YWUwOVx1YjQxYyBcdWFjODMgXHVjYzk4XHViN2ZjIFx1YWUzOFx1Yzc3NFx1YWMwMCAkMSRcdWM3NzggXHVjODhiXHVjNzQwIFx1YjJlOFx1YzIxYyBcdWFjYmRcdWI4NWNcdWIzYzQgXHVjODc0XHVjN2FjXHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuIn0seyJwcm9ibGVtX2lkIjoiMjUxMjMiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJOaWNlIFNpbXBsZSBQYXRocyIsImRlc2NyaXB0aW9uIjoiPHA+JFQkIGlzIGEgdHJlZSB3aXRoICRuJCBub2RlcyAodGhhdCBhcmUgbnVtYmVyZWQgZnJvbSAkMSQgdG8gJG4kKSB3aGVyZSBlYWNoIG5vZGUgaXMgbGFiZWxlZCB3aXRoIGFuIHVwcGVyY2FzZSBFbmdsaXNoIGFscGhhYmV0ICgmIzM5Ozxjb2RlPkE8XC9jb2RlPiYjMzk7IC0gJiMzOTs8Y29kZT5aPFwvY29kZT4mIzM5OykuIEJvYiBpcyBpbnRlcmVzdGVkIGluIGZpbmRpbmcgbG9uZ2VzdCBzaW1wbGUmbmJzcDtwYXRocyBpbiAkVCQgKGEgc2ltcGxlIHBhdGggaXMgYSBwYXRoIHRoYXQgZG9lcyBub3QgdmlzaXQgdGhlIHNhbWUgbm9kZSBtb3JlIHRoYW4gb25jZSkuPFwvcD5cclxuXHJcbjxwPkFsaWNlLCBhZnRlciB3YXRjaGluZyBCb2IgcGxheWluZyB0aGlzIGdhbWUsIHN1Z2dlc3RlZCBCb2IgdG8gZmluZCAmcXVvdDtuaWNlIHNpbXBsZSBwYXRocyZxdW90OyBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyBkZWZpbml0aW9uOiBGb3IgYW55IHNpbXBsZSBwYXRoICRQJCwgJFAkIGlzIHNhaWQgdG8gYmUgYSAmcXVvdDtuaWNlIHNpbXBsZSBwYXRoJnF1b3Q7IGlmIHRoZSBsYWJlbHMgb2YgdGhlIG5vZGVzJm5ic3A7aW4gJFAkIGFyZSB3cml0dGVuIG91dCB0byBjcmVhdGUgYSBzdHJpbmcgc3VjaCB0aGF0IHRoZSBzdHJpbmcgZG9lcyBub3QgaGF2ZSB0aGUgc2FtZSBhbHBoYWJldCByZXBlYXRlZCBjb25zZWN1dGl2ZWx5LjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzc2ZjE2YjhkLTFiYWYtNDY2OC05YjAxLWQ1MzYxYmIzMzFhNVwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJoZWlnaHQ6IDI4M3B4OyB3aWR0aDogNDA4cHg7XCIgXC8+PFwvcD5cclxuXHJcbjxwPkZvciBpbnN0YW5jZSwgdGhlIHRyZWUgaW4gdGhlIGltYWdlIGFib3ZlIGNvbnRhaW5zICQ3JCBub2Rlcy48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5QYXRoJm5ic3A7JDEgXFx0byZuYnNwOzUgXFx0byA3JCBpcyBhIHNpbXBsZSBwYXRoJm5ic3A7b2YgJDMkIG5vZGVzLCBidXQgdGhlaXIgbGFiZWxzIHByb2R1Y2UgdGhlIHN0cmluZyAmcXVvdDs8Y29kZT5BQVo8XC9jb2RlPiZxdW90OyBpbiB3aGljaCAmIzM5Ozxjb2RlPkE8XC9jb2RlPiYjMzk7IGlzIHJlcGVhdGVkIGNvbnNlY3V0aXZlbHkuIFRoaXMgaXMgbm90IGEgbmljZSBzaW1wbGUgcGF0aC48XC9saT5cclxuXHQ8bGk+UGF0aCAkMyBcXHRvJm5ic3A7MiBcXHRvIDEkIGlzIGEgc2ltcGxlIHBhdGggb2YgJDMkIG5vZGVzLCB3aGljaCBpcyBhIG5pY2Ugc2ltcGxlIHBhdGggKHRoZWlyIGxhYmVscyBwcm9kdWNlIHRoZSBzdHJpbmcgJnF1b3Q7PGNvZGU+QVhBPFwvY29kZT4mcXVvdDsgd2hlcmUgbm8gYWxwaGFiZXQgaXMgcmVwZWF0ZWQgY29uc2VjdXRpdmVseSkuPFwvbGk+XHJcblx0PGxpPlBhdGhzJm5ic3A7JDMgXFx0byZuYnNwOzIgXFx0byAxIFxcdG8gNCQgYW5kICQ0IFxcdG8gMSBcXHRvIDIgXFx0byAzJCBhcmUgbmljZSBzaW1wbGUgcGF0aHMgb2YgJDQkIG5vZGVzLiBOb3RlIHRoYXQgdGhlc2UgdHdvIHBhdGhzIGFyZSBjb25zaWRlcmVkIGFzIHRoZSBzYW1lIHBhdGggc2luY2UgdGhleSBjb250YWluIHRoZSBzYW1lIHNldCBvZiBub2RlcyAtLSBzZWUgdGhlIHNhbXBsZSBpbnB1dCBhbmQgb3V0cHV0LjxcL2xpPlxyXG5cdDxsaT5QYXRocyAkNyQgYW5kICQ0JCBhcmUgbmljZSBzaW1wbGUgcGF0aHMgdGhhdCBoYXBwZW4gdG8gY29udGFpbiBvbmx5IG9uZSBub2RlLjxcL2xpPlxyXG5cdDxsaT5UaGUgbG9uZ2VzdCBuaWNlIHNpbXBsZSBwYXRoIGluIHRoaXMgdHJlZSBjb250YWlucyAkNCQgbm9kZXMsIGFuZCB0aGVyZSBleGlzdHMgb25seSBvbmUgbG9uZ2VzdCBuaWNlIHNpbXBsZSBwYXRoLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkFsaWNlIGFuZCBCb2Igd2FudCB0byBrbm93IHRoZSBsZW5ndGggb2YgdGhlIGxvbmdlc3QgbmljZSBzaW1wbGUgcGF0aHMgaW4gdGhpcyB0cmVlLCBhbmQgaG93IG1hbnkgZGlmZmVyZW50IHN1Y2ggcGF0aHMgZXhpc3QuIEhlbHAgdGhlbSBjb21wdXRlIHRoZSBjb3JyZWN0IGFuc3dlci48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIG9mIHRoZSBpbnB1dCB3aWxsIGNvbnRhaW4gJFQkLCB0aGUgbnVtYmVyIG9mIHRlc3QgY2FzZXMuPFwvcD5cclxuXHJcbjxwPkVhY2ggdGVzdCBjYXNlIHdpbGwgY29uc2lzdCBvZiB0aHJlZSBsaW5lcy4gVGhlIGZpcnN0IGxpbmUgd2lsbCBjb250YWluICRuJCwgdGhlIG51bWJlciBvZiBub2Rlcy4gVGhlIHNlY29uZCBsaW5lIHdpbGwgY29udGFpbiBhIHN0cmluZyBvZiBsZW5ndGggJG4kICh3aXRob3V0IHNwYWNlKSwgZGVzY3JpYmluZyB0aGUgbGFiZWwgb2YgZWFjaCBub2RlLiBUaGUgdGhpcmQgbGluZSB3aWxsIGNvbnRhaW4gJG4kIG51bWJlcnMgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2UsIGRlc2NyaWJpbmcgZWFjaCBub2RlJiMzOTtzIHBhcmVudCBub2RlLiBUaGUgcm9vdCBub2RlJiMzOTtzIHBhcmVudCB3aWxsIGJlIGdpdmVuIGFzICQwJC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCB0ZXN0IGNhc2UsIG91dHB1dCB0d28gaW50ZWdlcnMgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2UuPFwvcD5cclxuXHJcbjxwPlRoZSBmaXJzdCBudW1iZXIgbXVzdCBiZSB0aGUgbnVtYmVyIG9mIG5vZGVzIGNvbnRhaW5lZCBpbiBhbnkgbG9uZ2VzdCBuaWNlIHNpbXBsZSBwYXRoLCBhbmQgdGhlIHNlY29uZCBudW1iZXIgbXVzdCBiZSB0aGUgbnVtYmVyIG9mIHVuaXF1ZSBsb25nZXN0IG5pY2Ugc2ltcGxlIHBhdGhzLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2giLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+JDEgJmxlOyBUICZsZTsgMTAkPFwvbGk+XHJcblx0PGxpPkl0IGlzIGd1YXJhbnRlZWQgdGhhdCBlYWNoIG5vZGUmIzM5O3MgbGFiZWwgaXMgb25lIG9mIHVwcGVyY2FzZSBFbmdsaXNoIGFscGhhYmV0cyAoJiMzOTs8Y29kZT5BPFwvY29kZT4mIzM5OyAtICYjMzk7PGNvZGU+WjxcL2NvZGU+JiMzOTspLjxcL2xpPlxyXG48XC91bD5cclxuIiwic3VidGFzazEiOiI8dWw+XHJcblx0PGxpPiQxICZsZTsgbiAmbGU7IDFcXCwwMDAkPFwvbGk+XHJcbjxcL3VsPlxyXG4iLCJzdWJ0YXNrMiI6Ijx1bD5cclxuXHQ8bGk+JDEgJmxlOyBuICZsZTsgMTAwXFwsMDAwJDxcL2xpPlxyXG48XC91bD5cclxuIiwic2FtcGxlX2V4cGxhaW5fMSI6IjxwPkNhc2UgMTogRGlzY3Vzc2VkIGluIHRoZSBwcm9ibGVtIHN0YXRlbWVudC48XC9wPlxyXG5cclxuPHA+Q2FzZSAyOiBUaGlzIHRyZWUgaGFzIHRoZSBzYW1lIHN0cnVjdHVyZSBhcyB0aGUgb25lIGluIENhc2UgMSwgZXhjZXB0IGZvciB0aGUgbm9kZSBsYWJlbHMuIFRoZXJlIGFyZSB0d28gbmljZSBzaW1wbGUgcGF0aHM6ICQxXFx0byAyIFxcdG8gMyQgYW5kICQ2IFxcdG8gNSBcXHRvIDckLjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcL2Q3NTg5MTJkLTdkMmMtNDg3ZS05OTFhLWViMThiNjNlMTA3NFwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJoZWlnaHQ6IDI4M3B4OyB3aWR0aDogNDA4cHg7XCIgXC8+PFwvcD5cclxuXHJcbjxwPkNhc2UgMzogRXZlcnkgc2ltcGxlIHBhdGggb2YgbGVuZ3RoICQzJCBpbiB0aGUgdHJlZSBiZWxvdyBpcyBhIG5pY2Ugc2ltcGxlIHBhdGguPFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvYWYxYzNjMzAtMzQ1Ny00ZTcyLTk0YjQtMjRhNjNlODUzNWI1XC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cImhlaWdodDogMTg4cHg7IHdpZHRoOiAyOTZweDtcIiBcLz48XC9wPlxyXG5cclxuPHA+Q2FzZSA0OiAkMSBcXHRvIDQkIGFuZCZuYnNwOyQyIFxcdG8gNSQgYXJlIHRoZSB0d28gbG9uZ2VzdCBuaWNlIHNpbXBsZSBwYXRocy48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9lMWQ5NWVjOS1jN2E1LTRjOTUtOTFlZC0yMDk2ZDMzODFmYTBcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwiaGVpZ2h0OiAyNzFweDsgd2lkdGg6IDI1NnB4O1wiIFwvPjxcL3A+XHJcblxyXG48cD5DYXNlIDU6IEFzIG1lbnRpb25lZCBpbiB0aGUgcHJvYmxlbSBzdGF0ZW1lbnQsIG5pY2Ugc2ltcGxlIHBhdGhzIG1heSBvbmx5IGNvbnRhaW4gb25lIG5vZGUuPFwvcD5cclxuIn1d

시간 제한

  • Java 8: 3 초
  • Python 3: 4 초
  • PyPy3: 4 초
  • Java 8 (OpenJDK): 3 초
  • Java 11: 3 초
  • Kotlin (JVM): 3 초
  • Java 15: 3 초

채점 및 기타 정보

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