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

문제

Alice는 정수 배열을 이용한 구간합 놀이를 즐겨하는데, 아래와 같은 순서로 게임을 진행한다.

  • 먼저, 길이 $n$인 정수 배열 $A$를 만든다. $A$의 원소가 $A[1]$, $\dots$, $A[n]$이라 했을 때 이 $n$개의 값은 모두 달라야 한다.
  • 다음으로, 배열 $A$의 구간을 나타내는 $m$개의 정수 쌍 $(x[1], y[1])$, $\dots$, $(x[m], y[m])$을 고른다. 이 때 $1 ≤ x[i] ≤ y[i] ≤ n$ 을 만족해야한다.
  • 배열 $A$와 $x$, $y$를 이용하여 구간합 $S(A, x, y)$을 다음과 같이 정의한다: $S(A, x, y) := \sum_{1 \le j \le m} ( \sum_{x[j] \le i \le y[j]} A[i] )$
  • 이 게임의 목표는 배열 $A$의 원소를 임의로 재배열하여 $S(A, x, y)$값을 최대로 만드는 것이다. $A$의 원소가 $n$개이므로 총 $n!$ 가지의 방법으로 $A$의 원소를 재배열할 수 있다.

예를 들어, $n = 3$, $m = 2$, $A = [10, 100, 1000]$ 이고 $x = [1, 2]$, $y = [2, 2]$라 하자. $n = 3$ 이므로 $A$의 원소를 재배열하여 얻을 수 있는 배열은 총 여섯 종류가 있다. 원래의 배열 $A$와 구분하기 위해 이를 배열 $B$라 하자.

  • $B = [10, 100, 1000]$ 일 때, $S(B, x, y) = (10 + 100) + (100) = 210$.
  • $B = [10, 1000, 100]$ 일 때, $S(B, x, y) = (10 + 1000) + (1000) = 2010$.
  • $B = [100, 10, 1000]$ 일 때, $S(B, x, y) = (100 + 10) + (10) = 120$.
  • $B = [100, 1000, 10]$ 일 때, $S(B, x, y) = (100 + 1000) + (1000) = 2100$.
  • $B = [1000, 10, 100]$ 일 때, $S(B, x, y) = (1000 + 10) + (10) = 1020$.
  • $B = [1000, 100, 10]$ 일 때, $S(B, x, y) = (1000 + 100) + (100) = 1200$.

이 경우 $S(A, x, y)$의 최댓값은 $2100$이며, 네 번째 경우인 $B = [100, 1000, 10]$를 통해 얻을 수 있다.

다른 예로, $n = 2$, $m = 1$, $A = [20, 22]$ 이고 $x = [1]$, $y = [2]$라 하자. $n = 2$ 이므로 $A$의 원소를 재배열하여 얻을 수 있는 배열은 총 두 종류가 있다. 원래의 배열 $A$와 구분하기 위해 이를 배열 $B$라 하자.

  • $B = [20, 22]$ 일 때, $S(B, x, y) = (20 + 22) = 42$.
  • $B = [22, 20]$ 일 때, $S(B, x, y) = (22 + 20) = 42$.

이 경우 $S(A, x, y)$의 최댓값은 $42$이며, 두 가지 다른 방법을 통해 얻을 수 있다.

$A$, $x$, $y$가 주어졌을 때 Alice가 $A$의 원소를 재배열하여 달성할 수 있는 $S(A, x, y)$의 최댓값을 구하고, 몇 가지 다른 방법으로 최댓값을 달성할 수 있는지 구해보자.

입력

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

각 테스트 케이스의 입력 첫 줄에 $n$, $m$이 공백으로 구분되어 주어진다. 둘째 줄에는 배열 $A$의 원소 $n$개가 공백으로 구분되어 주어진다. 다음 $m$줄에 걸쳐 각 줄에 두 개의 정수 $x[i]$와 $y[i]$가 공백으로 구분되어 주어진다.

출력

각 테스트 케이스의 정답인 Alice가 달성할 수 있는 $S(A, x, y)$의 최댓값, 그리고 이를 달성할 수 있는 방법의 수를 공백으로 구분하여 출력한다. 단, 방법의 수가 매우 커질 수 있으므로 $10^9+7$로 나눈 나머지를 출력한다.

제한

  • $1 ≤ T ≤ 10$
  • $1 ≤ n ≤ 50\,000$
  • $1 ≤ m ≤ 200\,000$
  • $1 ≤ A$의 원소 $≤ 10^8$
  • 배열 $A$의 원소는 고유하다
  • $1 ≤ i ≤ m$인 정수 $i$에 대하여 $1 ≤ x[i] ≤ y[i] ≤ n$

예제 입력 1

6
3 2
10 100 1000
1 2
2 2
2 1
20 22
1 2
5 3
1 3 5 7 9
1 2
2 3
3 4
6 1
1 2 3 100 200 300
1 2
7 7
100000000 99999999 99999998 99999997 99999996 99999995 99999994
1 7
2 7
3 7
4 7
5 7
6 7
7 7
13 1
1 2 3 4 5 6 7 8 9 10 11 12 13
1 13

예제 출력 1

2100 1
42 2
40 4
500 48
2799999944 1
91 227020758
  • 예제 1-2: 본문에서 다루었다
  • 예제 3-4: 추가 설명 없음
  • 예제 5: 최댓값은 32-bit integer 범위를 넘어감에 주의하자.
  • 예제 6: 최댓값을 달성할 수 있는 방법의 수는 매우 커질 수 있으므로 ($10^9+7$)로 나눈 나머지를 출력해야한다.
W3sicHJvYmxlbV9pZCI6IjI0ODM4IiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViYzMwXHVjNWY0IFx1YWQ2Y1x1YWMwNFx1ZDU2OSBcdWIxODBcdWM3NzQiLCJkZXNjcmlwdGlvbiI6IjxwPkFsaWNlXHViMjk0IFx1YzgxNVx1YzIxOCBcdWJjMzBcdWM1ZjRcdWM3NDQgXHVjNzc0XHVjNmE5XHVkNTVjIFx1YWQ2Y1x1YWMwNFx1ZDU2OSBcdWIxODBcdWM3NzRcdWI5N2MgXHVjOTkwXHVhY2E4XHVkNTU4XHViMjk0XHViMzcwLCBcdWM1NDRcdWI3OThcdWM2NDAgXHVhYzE5XHVjNzQwIFx1YzIxY1x1YzExY1x1Yjg1YyBcdWFjOGNcdWM3ODRcdWM3NDQgXHVjOWM0XHVkNTg5XHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPlx1YmEzY1x1YzgwMCwgXHVhZTM4XHVjNzc0ICRuJFx1Yzc3OCBcdWM4MTVcdWMyMTggXHViYzMwXHVjNWY0ICRBJFx1Yjk3YyBcdWI5Y2NcdWI0ZTBcdWIyZTQuICRBJFx1Yzc1OCBcdWM2ZDBcdWMxOGNcdWFjMDAgJEFbMV0kLCAkXFxkb3RzJCwgJEFbbl0kXHVjNzc0XHViNzdjIFx1ZDU4OFx1Yzc0NCBcdWI1NGMgXHVjNzc0ICRuJFx1YWMxY1x1Yzc1OCBcdWFjMTJcdWM3NDAgXHViYWE4XHViNDUwIFx1YjJlY1x1Yjc3Y1x1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1YjJlNFx1Yzc0Y1x1YzczY1x1Yjg1YywgXHViYzMwXHVjNWY0ICRBJFx1Yzc1OCBcdWFkNmNcdWFjMDRcdWM3NDQgXHViMDk4XHVkMGMwXHViMGI0XHViMjk0ICRtJFx1YWMxY1x1Yzc1OCBcdWM4MTVcdWMyMTggXHVjMzBkICQoeFsxXSwgeVsxXSkkLCAkXFxkb3RzJCwgJCh4W21dLCB5W21dKSRcdWM3NDQgXHVhY2UwXHViOTc4XHViMmU0LiBcdWM3NzQgXHViNTRjICQxICZsZTsgeFtpXSAmbGU7IHlbaV0gJmxlOyBuJCBcdWM3NDQgXHViOWNjXHVjODcxXHVkNTc0XHVjNTdjXHVkNTVjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWJjMzBcdWM1ZjQgJEEkXHVjNjQwICR4JCwgJHkkXHViOTdjIFx1Yzc3NFx1YzZhOVx1ZDU1OFx1YzVlYyBcdWFkNmNcdWFjMDRcdWQ1NjkgJFMoQSwgeCwgeSkkXHVjNzQ0IFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWM3NzQgXHVjODE1XHVjNzU4XHVkNTVjXHViMmU0OiAkUyhBLCB4LCB5KSA6PSBcXHN1bV97MSBcXGxlIGogXFxsZSBtfSAoIFxcc3VtX3t4W2pdIFxcbGUgaSBcXGxlIHlbal19IEFbaV0gKSQ8XC9saT5cclxuXHQ8bGk+XHVjNzc0IFx1YWM4Y1x1Yzc4NFx1Yzc1OCBcdWJhYTlcdWQ0NWNcdWIyOTQgXHViYzMwXHVjNWY0ICRBJFx1Yzc1OCBcdWM2ZDBcdWMxOGNcdWI5N2MgXHVjNzg0XHVjNzU4XHViODVjIFx1YzdhY1x1YmMzMFx1YzVmNFx1ZDU1OFx1YzVlYyAkUyhBLCB4LCB5KSRcdWFjMTJcdWM3NDQgXHVjZDVjXHViMzAwXHViODVjIFx1YjljY1x1YjRkY1x1YjI5NCBcdWFjODNcdWM3NzRcdWIyZTQuICRBJFx1Yzc1OCBcdWM2ZDBcdWMxOGNcdWFjMDAgJG4kXHVhYzFjXHVjNzc0XHViYmMwXHViODVjIFx1Y2QxZCAkbiEkIFx1YWMwMFx1YzljMFx1Yzc1OCBcdWJjMjlcdWJjOTVcdWM3M2NcdWI4NWMgJEEkXHVjNzU4IFx1YzZkMFx1YzE4Y1x1Yjk3YyBcdWM3YWNcdWJjMzBcdWM1ZjRcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5cdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0LCAkbiA9IDMkLCAkbSA9IDIkLCAkQSA9IFsxMCwgMTAwLCAxMDAwXSQgXHVjNzc0XHVhY2UwICR4ID0gWzEsIDJdJCwgJHkgPSBbMiwgMl0kXHViNzdjIFx1ZDU1OFx1Yzc5MC4gJG4gPSAzJCBcdWM3NzRcdWJiYzBcdWI4NWMgJEEkXHVjNzU4IFx1YzZkMFx1YzE4Y1x1Yjk3YyBcdWM3YWNcdWJjMzBcdWM1ZjRcdWQ1NThcdWM1ZWMgXHVjNWJiXHVjNzQ0IFx1YzIxOCBcdWM3ODhcdWIyOTQgXHViYzMwXHVjNWY0XHVjNzQwIFx1Y2QxZCBcdWM1ZWNcdWMxMmYgXHVjODg1XHViOTU4XHVhYzAwIFx1Yzc4OFx1YjJlNC4gXHVjNmQwXHViNzk4XHVjNzU4IFx1YmMzMFx1YzVmNCAkQSRcdWM2NDAgXHVhZDZjXHViZDg0XHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU3NCBcdWM3NzRcdWI5N2MgXHViYzMwXHVjNWY0ICRCJFx1Yjc3YyBcdWQ1NThcdWM3OTAuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+JEIgPSBbMTAsIDEwMCwgMTAwMF0kIFx1Yzc3YyBcdWI1NGMsICRTKEIsIHgsIHkpID0gKDEwICsgMTAwKSArICgxMDApID0gMjEwJC48XC9saT5cclxuXHQ8bGk+JEIgPSBbMTAsIDEwMDAsIDEwMF0kIFx1Yzc3YyBcdWI1NGMsICRTKEIsIHgsIHkpID0gKDEwICsgMTAwMCkgKyAoMTAwMCkgPSAyMDEwJC48XC9saT5cclxuXHQ8bGk+JEIgPSBbMTAwLCAxMCwgMTAwMF0kIFx1Yzc3YyBcdWI1NGMsICRTKEIsIHgsIHkpID0gKDEwMCArIDEwKSArICgxMCkgPSAxMjAkLjxcL2xpPlxyXG5cdDxsaT4kQiA9IFsxMDAsIDEwMDAsIDEwXSQgXHVjNzdjIFx1YjU0YywgJFMoQiwgeCwgeSkgPSAoMTAwICsgMTAwMCkgKyAoMTAwMCkgPSAyMTAwJC48XC9saT5cclxuXHQ8bGk+JEIgPSBbMTAwMCwgMTAsIDEwMF0kIFx1Yzc3YyBcdWI1NGMsICRTKEIsIHgsIHkpID0gKDEwMDAgKyAxMCkgKyAoMTApID0gMTAyMCQuPFwvbGk+XHJcblx0PGxpPiRCID0gWzEwMDAsIDEwMCwgMTBdJCBcdWM3N2MgXHViNTRjLCAkUyhCLCB4LCB5KSA9ICgxMDAwICsgMTAwKSArICgxMDApID0gMTIwMCQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHVjNzc0IFx1YWNiZFx1YzZiMCAkUyhBLCB4LCB5KSRcdWM3NTggXHVjZDVjXHViMzEzXHVhYzEyXHVjNzQwICQyMTAwJFx1Yzc3NFx1YmE3MCwgXHViMTI0IFx1YmM4OFx1YzlmOCBcdWFjYmRcdWM2YjBcdWM3NzggJEIgPSBbMTAwLCAxMDAwLCAxMF0kXHViOTdjIFx1ZDFiNVx1ZDU3NCBcdWM1YmJcdWM3NDQgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViMmU0XHViOTc4IFx1YzYwOFx1Yjg1YywgJG4gPSAyJCwgJG0gPSAxJCwgJEEgPSBbMjAsIDIyXSQgXHVjNzc0XHVhY2UwICR4ID0gWzFdJCwgJHkgPSBbMl0kXHViNzdjIFx1ZDU1OFx1Yzc5MC4gJG4gPSAyJCBcdWM3NzRcdWJiYzBcdWI4NWMgJEEkXHVjNzU4IFx1YzZkMFx1YzE4Y1x1Yjk3YyBcdWM3YWNcdWJjMzBcdWM1ZjRcdWQ1NThcdWM1ZWMgXHVjNWJiXHVjNzQ0IFx1YzIxOCBcdWM3ODhcdWIyOTQgXHViYzMwXHVjNWY0XHVjNzQwIFx1Y2QxZCBcdWI0NTAgXHVjODg1XHViOTU4XHVhYzAwIFx1Yzc4OFx1YjJlNC4gXHVjNmQwXHViNzk4XHVjNzU4IFx1YmMzMFx1YzVmNCAkQSRcdWM2NDAgXHVhZDZjXHViZDg0XHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU3NCBcdWM3NzRcdWI5N2MgXHViYzMwXHVjNWY0ICRCJFx1Yjc3YyBcdWQ1NThcdWM3OTAuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+JEIgPSBbMjAsIDIyXSQgXHVjNzdjIFx1YjU0YywgJFMoQiwgeCwgeSkgPSAoMjAgKyAyMikgPSA0MiQuPFwvbGk+XHJcblx0PGxpPiRCID0gWzIyLCAyMF0kIFx1Yzc3YyBcdWI1NGMsICRTKEIsIHgsIHkpID0gKDIyICsgMjApID0gNDIkLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1Yzc3NCBcdWFjYmRcdWM2YjAgJFMoQSwgeCwgeSkkXHVjNzU4IFx1Y2Q1Y1x1YjMxM1x1YWMxMlx1Yzc0MCAkNDIkXHVjNzc0XHViYTcwLCBcdWI0NTAgXHVhYzAwXHVjOWMwIFx1YjJlNFx1Yjk3OCBcdWJjMjlcdWJjOTVcdWM3NDQgXHVkMWI1XHVkNTc0IFx1YzViYlx1Yzc0NCBcdWMyMTggXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48cD4kQSQsICR4JCwgJHkkXHVhYzAwIFx1YzhmY1x1YzViNFx1Yzg0Y1x1Yzc0NCBcdWI1NGMgQWxpY2VcdWFjMDAgJEEkXHVjNzU4IFx1YzZkMFx1YzE4Y1x1Yjk3YyBcdWM3YWNcdWJjMzBcdWM1ZjRcdWQ1NThcdWM1ZWMgXHViMmVjXHVjMTMxXHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyOTQgJFMoQSwgeCwgeSkkXHVjNzU4IFx1Y2Q1Y1x1YjMxM1x1YWMxMlx1Yzc0NCBcdWFkNmNcdWQ1NThcdWFjZTAsIFx1YmE4NyBcdWFjMDBcdWM5YzAgXHViMmU0XHViOTc4IFx1YmMyOVx1YmM5NVx1YzczY1x1Yjg1YyBcdWNkNWNcdWIzMTNcdWFjMTJcdWM3NDQgXHViMmVjXHVjMTMxXHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyOTRcdWM5YzAgXHVhZDZjXHVkNTc0XHViY2Y0XHVjNzkwLjxcL3A+XHJcblxyXG48dWw+XHJcbjxcL3VsPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYiBcdWM5MDRcdWM1ZDAgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWMyMTggJFQkXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHVjNzg1XHViODI1IFx1Y2NhYiBcdWM5MDRcdWM1ZDAgJG4kLCAkbSRcdWM3NzQgXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjIFx1YWQ2Y1x1YmQ4NFx1YjQxOFx1YzViNCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YjQ1OFx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgXHViYzMwXHVjNWY0ICRBJFx1Yzc1OCBcdWM2ZDBcdWMxOGMgJG4kXHVhYzFjXHVhYzAwIFx1YWNmNVx1YmMzMVx1YzczY1x1Yjg1YyBcdWFkNmNcdWJkODRcdWI0MThcdWM1YjQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWIyZTRcdWM3NGMgJG0kXHVjOTA0XHVjNWQwIFx1YWM3OFx1Y2NkMCBcdWFjMDEgXHVjOTA0XHVjNWQwIFx1YjQ1MCBcdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4ICR4W2ldJFx1YzY0MCAkeVtpXSRcdWFjMDAgXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjIFx1YWQ2Y1x1YmQ4NFx1YjQxOFx1YzViNCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHVjODE1XHViMmY1XHVjNzc4IEFsaWNlXHVhYzAwIFx1YjJlY1x1YzEzMVx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMjk0ICRTKEEsIHgsIHkpJFx1Yzc1OCBcdWNkNWNcdWIzMTNcdWFjMTIsIFx1YWRmOFx1YjlhY1x1YWNlMCBcdWM3NzRcdWI5N2MgXHViMmVjXHVjMTMxXHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyOTQgXHViYzI5XHViYzk1XHVjNzU4IFx1YzIxOFx1Yjk3YyBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHVkNTU4XHVjNWVjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHViMmU4LCBcdWJjMjlcdWJjOTVcdWM3NTggXHVjMjE4XHVhYzAwIFx1YjllNFx1YzZiMCBcdWNlZTRcdWM5YzggXHVjMjE4IFx1Yzc4OFx1YzczY1x1YmJjMFx1Yjg1YyAkMTBeOSs3JFx1Yjg1YyBcdWIwOThcdWIyMDggXHViMDk4XHViYTM4XHVjOWMwXHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4iLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+JDEgJmxlOyBUICZsZTsgMTAkPFwvbGk+XHJcblx0PGxpPiQxICZsZTsgbiAmbGU7IDUwXFwsMDAwJDxcL2xpPlxyXG5cdDxsaT4kMSAmbGU7IG0gJmxlOyAyMDBcXCwwMDAkPFwvbGk+XHJcblx0PGxpPiQxICZsZTsgQSRcdWM3NTggXHVjNmQwXHVjMThjICQmbGU7IDEwXjgkPFwvbGk+XHJcblx0PGxpPlx1YmMzMFx1YzVmNCAkQSRcdWM3NTggXHVjNmQwXHVjMThjXHViMjk0IFx1YWNlMFx1YzcyMFx1ZDU1OFx1YjJlNDxcL2xpPlxyXG5cdDxsaT4kMSAmbGU7IGkgJmxlOyBtJFx1Yzc3OCBcdWM4MTVcdWMyMTggJGkkXHVjNWQwIFx1YjMwMFx1ZDU1OFx1YzVlYyAkMSAmbGU7IHhbaV0gJmxlOyB5W2ldICZsZTsgbiQ8XC9saT5cclxuPFwvdWw+XHJcbiIsInNhbXBsZV9leHBsYWluXzEiOiI8dWw+XHJcblx0PGxpPlx1YzYwOFx1YzgxYyAxLTI6IFx1YmNmOFx1YmIzOFx1YzVkMFx1YzExYyBcdWIyZTRcdWI4ZThcdWM1YzhcdWIyZTQ8XC9saT5cclxuXHQ8bGk+XHVjNjA4XHVjODFjIDMtNDogXHVjZDk0XHVhYzAwIFx1YzEyNFx1YmE4NSBcdWM1YzZcdWM3NGM8XC9saT5cclxuXHQ8bGk+XHVjNjA4XHVjODFjIDU6IFx1Y2Q1Y1x1YjMxM1x1YWMxMlx1Yzc0MCAzMi1iaXQgaW50ZWdlciBcdWJjOTRcdWM3MDRcdWI5N2MgXHViMTE4XHVjNWI0XHVhYzEwXHVjNWQwIFx1YzhmY1x1Yzc1OFx1ZDU1OFx1Yzc5MC48XC9saT5cclxuXHQ8bGk+XHVjNjA4XHVjODFjIDY6IFx1Y2Q1Y1x1YjMxM1x1YWMxMlx1Yzc0NCBcdWIyZWNcdWMxMzFcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWJjMjlcdWJjOTVcdWM3NTggXHVjMjE4XHViMjk0IFx1YjllNFx1YzZiMCBcdWNlZTRcdWM5YzggXHVjMjE4IFx1Yzc4OFx1YzczY1x1YmJjMFx1Yjg1YyAoJDEwXjkrNyQpXHViODVjIFx1YjA5OFx1YjIwOCBcdWIwOThcdWJhMzhcdWM5YzBcdWI5N2MgXHVjZDljXHViODI1XHVkNTc0XHVjNTdjXHVkNTVjXHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuIn0seyJwcm9ibGVtX2lkIjoiMjQ4MzgiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJTdWJhcnJheSBTdW1tYXRpb24gR2FtZSIsImRlc2NyaXB0aW9uIjoiPHA+QWxpY2UgbGlrZXMgdG8gcGxheSB0aGUgJnF1b3Q7U3ViYXJyYXkgU3VtbWF0aW9uIEdhbWUmcXVvdDsgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgcnVsZXM6PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+Rmlyc3Qgb2YgYWxsLCBzaGUgd291bGQgY2hvb3NlIGFuIGludGVnZXIgYXJyYXkgJEEkIG9mIGxlbmd0aCAkbiQuIExldCAkQVsxXSQsICRcXGRvdHMkLCAkQVtuXSQgYmUgdGhlIGVsZW1lbnRzIG9mICRBJCwgYW5kIHRoZXNlICRuJCB2YWx1ZXMgbXVzdCBiZSBkaXN0aW5jdC48XC9saT5cclxuXHQ8bGk+TmV4dCwgc2hlIHdvdWxkIHBpY2sgJG0kIHBhaXJzIG9mIGluZGljZXMgb2YgYXJyYXkgJEEkLCAkKHhbMV0sIHlbMV0pJCwgJFxcZG90cyQsICQoeFttXSwgeVttXSkkIHdpdGggJDEgJmxlOyB4W2ldICZsZTsgeVtpXSAmbGU7IG4kLjxcL2xpPlxyXG5cdDxsaT5Vc2luZyAkQSQgYXMgd2VsbCBhcyAkeCQgYW5kICR5JCwgZGVmaW5lIHRoZSA8ZW0+c3ViYXJyYXkgc3VtPFwvZW0+ICRTKEEsIHgsIHkpJCBhcyBmb2xsb3dzOiZuYnNwOyRTKEEsIHgsIHkpIDo9ICZuYnNwO1xcc3VtX3sxIFxcbGUgaiBcXGxlIG19ICggXFxzdW1fe3hbal0gXFxsZSBpIFxcbGUgeVtqXX0gQVtpXSApICQ8XC9saT5cclxuXHQ8bGk+VGhlIG9iamVjdGl2ZSBvZiB0aGUgZ2FtZSBpcyB0byByZS1hcnJhbmdlIHRoZSBlbGVtZW50cyBvZiAkQSQgYXJiaXRyYXJpbHkgaW4gb3JkZXIgdG8gbWF4aW1pemUmbmJzcDskUyhBLCB4LCB5KSQuIFNpbmNlICRBJCBjb250YWlucyAkbiQgZWxlbWVudHMsIHRoZXJlIGFyZSAkbiEkIHdheXMgdG8gcmUtYXJyYW5nZSB0aGUgZWxlbWVudHMgb2YgJEEkLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkZvciBpbnN0YW5jZSwmbmJzcDtzdXBwb3NlIHRoYXQgJG4gPSAzJCwgJG0gPSAyJCwgJEEgPSBbMTAsIDEwMCwgMTAwMF0kLCZuYnNwOyR4ID0gWzEsIDJdJCwgYW5kICR5ID0gWzIsIDJdJC4gQmVjYXVzZSAkbiA9IDMkLCB0aGVyZSBhcmUgc2l4IHdheXMgdG8gb2J0YWluIGEgbmV3IGFycmF5IGJ5IHJlLWFycmFuZ2luZyAkQSQgLS0gdG8gZGlmZmVyZW50aWF0ZSB0aGlzIGZyb20gdGhlIG9yaWdpbmFsIGFycmF5LCBsZXQgdGhlIG5ldyBhcnJheSBiZSAkQiQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+V2hlbiAkQiA9IFsxMCwgMTAwLCAxMDAwXSQ6ICRTKEIsIHgsIHkpID0gKDEwICsgMTAwKSArICgxMDApID0gMjEwJC48XC9saT5cclxuXHQ8bGk+V2hlbiAkQiA9IFsxMCwgMTAwMCwgMTAwXSQ6ICRTKEIsIHgsIHkpID0gKDEwICsgMTAwMCkgKyAoMTAwMCkgPSAyMDEwJC48XC9saT5cclxuXHQ8bGk+V2hlbiAkQiA9IFsxMDAsIDEwLCAxMDAwXSQ6Jm5ic3A7JFMoQiwgeCwgeSkgPSAoMTAwICsgMTApICsgKDEwKSA9IDEyMCQuPFwvbGk+XHJcblx0PGxpPldoZW4gJEIgPSBbMTAwLCAxMDAwLCAxMF0kOiAkUyhCLCB4LCB5KSA9ICgxMDAgKyAxMDAwKSArICgxMDAwKSA9IDIxMDAkLjxcL2xpPlxyXG5cdDxsaT5XaGVuICRCID0gWzEwMDAsIDEwLCAxMDBdJDogJFMoQiwgeCwgeSkgPSAoMTAwMCArIDEwKSArICgxMCkgPSAxMDIwJC48XC9saT5cclxuXHQ8bGk+V2hlbiAkQiA9IFsxMDAwLCAxMDAsIDEwXSQ6ICRTKEIsIHgsIHkpID0gKDEwMDAgKyAxMDApICsgKDEwMCkgPSAxMjAwJC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5JbiB0aGlzIGNhc2UsIHRoZSBtYXhpbXVtIHBvc3NpYmxlIHZhbHVlIGZvciAkUyhBLCB4LCB5KSQgaXMgJDIxMDAkLCBhbmQgaXQgY2FuIGJlIGFjaGlldmVkIGJ5IGhhdmluZyAkQiA9IFsxMDAsIDEwMDAsIDEwXSQuPFwvcD5cclxuXHJcbjxwPlRvIGdpdmUgYW5vdGhlciBleGFtcGxlLCBzdXBwb3NlJm5ic3A7JG4gPSAyJCwgJG0gPSAxJCwgJEEgPSBbMjAsIDIyXSQsJm5ic3A7JHggPSBbMV0kLCBhbmQgJHkgPSBbMl0kLiBCZWNhdXNlICRuID0gMiQsIHRoZXJlIGFyZSB0d28gd2F5cyB0byByZS1hcnJhbmdlICRBJCAtLSB0byBkaWZmZXJlbnRpYXRlIHRoaXMgZnJvbSB0aGUgb3JpZ2luYWwgYXJyYXksIGxldCB0aGUgbmV3IGFycmF5IGJlICRCJC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5XaGVuICRCID0gWzIwLCAyMl0kOiAkUyhCLCB4LCB5KSA9ICgyMCZuYnNwOysgMjIpID0gNDIkLjxcL2xpPlxyXG5cdDxsaT5XaGVuICRCID0gWzIyLCAyMF0kOiAkUyhCLCB4LCB5KSA9ICgyMiZuYnNwOysgMjApID0gNDIkLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkluIHRoaXMgY2FzZSwgdGhlIG1heGltdW0gcG9zc2libGUgdmFsdWUgZm9yICRTKEEsIHgsIHkpJCBpcyAkNDIkLCBhbmQgdGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgd2F5cyB0byBhY2hpZXZlIGl0LjxcL3A+XHJcblxyXG48cD5HaXZlbiAkQSQsICR4JCwgYW5kICR5JCwgY29tcHV0ZSB0aGUgbWF4aW11bSBwb3NzaWJsZSB2YWx1ZSBmb3IgJFMoQSwgeCwgeSkkIGJ5IHJlLWFycmFuZ2luZyBlbGVtZW50cyBpbiAkQSQsIGFuZCBhbHNvIGNvbXB1dGUgaW4gaG93IG1hbnkgZGlmZmVyZW50IHdheXMgQWxpY2UgY2FuIGFjaGlldmUgdGhlIHNhaWQgbWF4aW11bSB2YWx1ZS48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIG9mIGlucHV0IHdpbGwgY29udGFpbiAkVCQsIHRoZSBudW1iZXIgb2YgdGVzdCBjYXNlcy48XC9wPlxyXG5cclxuPHA+Rm9yIGVhY2ggdGVzdCBjYXNlLCB0aGUgZmlyc3QgbGluZSB3aWxsIGNvbnRhaW4gJG4kIGFuZCAkbSQgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2UuIFRoZSBzZWNvbmQgbGluZSB3aWxsIGNvbnRhaW4gJG4kIGVsZW1lbnRzIG9mICRBJCwgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2UuIEVhY2ggb2YgdGhlIG5leHQgJG0kIGxpbmVzIHdpbGwgY29udGFpbiB0d28gaW50ZWdlcnMgJHhbaV0kIGFuZCAkeVtpXSQsIHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPk91dHB1dCB0aGUgYW5zd2VyIG9mIGVhY2ggdGVzdCBjYXNlIGluIGVhY2ggbGluZTogVGhlIG1heGltdW0gcG9zc2libGUgdmFsdWUgZm9yICRTKEEsIHgsIHkpJCBhbmQgdGhlIG51bWJlciBvZiB3YXlzIHRvIGFjaGlldmUgaXQgc2hvdWxkIGJlIG91dHB1dCBpbiBhIHNpbmdsZSBsaW5lLCBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZS4gU2luY2UgdGhlIG51bWJlciBvZiB3YXlzIGNhbiBiZSB2ZXJ5IGxhcmdlLCBvdXRwdXQgdGhlIG51bWJlciBtb2R1bG8mbmJzcDskMTBeOSs3JCAoaS5lLiwgdGhlIHJlbWFpbmRlciBpZiBkaXZpZGVkIGJ5ICQxMF45KzckKS48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJFbmdsaXNoIiwibGltaXQiOiI8dWw+XHJcblx0PGxpPiQxICZsZTsgVCAmbGU7IDEwJDxcL2xpPlxyXG5cdDxsaT4kMSAmbGU7IG4gJmxlOyA1MFxcLDAwMCQ8XC9saT5cclxuXHQ8bGk+JDEgJmxlOyBtICZsZTsgMjAwXFwsMDAwJDxcL2xpPlxyXG5cdDxsaT4kMSAmbGU7JCBlYWNoIGVsZW1lbnQgb2YgJEEgJmxlOyAxMF44JDxcL2xpPlxyXG5cdDxsaT5FbGVtZW50cyBpbiAkQSQgYXJlIGRpc3RpbmN0PFwvbGk+XHJcblx0PGxpPkZvciBlYWNoICRpJCB3aXRoICQxICZsZTsgaSAmbGU7IG0kOiZuYnNwOyQxICZsZTsgeFtpXSAmbGU7IHlbaV0gJmxlOyBuJDxcL2xpPlxyXG48XC91bD5cclxuIiwic2FtcGxlX2V4cGxhaW5fMSI6Ijx1bD5cclxuXHQ8bGk+Q2FzZXMgMS0yOiBEaXNjdXNzZWQgaW4gdGhlIHByb2JsZW0gc3RhdGVtZW50LjxcL2xpPlxyXG5cdDxsaT5DYXNlcyAzLTQ6IE5vIGZ1cnRoZXIgZXhwbGFuYXRpb24uPFwvbGk+XHJcblx0PGxpPkNhc2UgNTogVGhlIG1heGltdW0gdmFsdWUgb2YgJFMoQSwgeCwgeSkkIGNhbiBleGNlZWQgMzItYml0IGludGVnZXIuPFwvbGk+XHJcblx0PGxpPkNhc2UgNjogVGhlIG51bWJlciBvZiB3YXlzIGNhbiBiZSB2ZXJ5IGxhcmdlLCBzbyBvdXRwdXQgdGhlIGFuc3dlciBtb2R1bG8mbmJzcDsoJDEwXjkrNyQpLjxcL2xpPlxyXG48XC91bD5cclxuIn1d

시간 제한

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