시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 1024 MB 1 0 0 0.000%

문제

육각형 타일로 이루어진 칸들이 무한하게 놓여 있고, 재현이는 이 중 "시작 칸"이라고 부르는 칸 위에 서 있다. 두 칸은 모서리를 공유하면 이웃하고 있다고 하자. 재현이는 매번 다음 그림과 같이, 1부터 6까지 번호가 붙은 방향 을 따라서 이웃한 칸 중 하나로 이동할 수 있다.

재현이가 총 $N$번 움직였을 때 만드는 칸들로 이루어지는 경로는 영역을 형성한다. $i$번째 움직일 때는 $D[i]$ 방향으로 $L[i]$ 칸을 이동한다. 이 경로는 다음과 같은 특징이 있다.

  • 이 경로는 닫혀있는데, 마지막에 도착하는 칸은 시작 칸과 동일하다는 뜻이다.
  • 이 경로는 단순한데, 맨 처음 시작한 칸만 빼고 모든 칸은 최대 한 번 방문한다는 뜻이다. 맨 처음 시작한 칸은 맨 마지막까지 합쳐서 정확하게 두 번 방문한다.
  • 이 경로는 드러나 있는데, 경로에 포함되는 모든 칸은 최소한 한 개의 경로에 포함되지 않으면서 내부에 있지 않는 칸과 이웃한다.
    • 만약 어떤 칸이 경로에 포함되지 않으면서, 경로에 포함되는 칸을 지나지 않고 방문할 수 있는 칸의 개수가 유한하다면 이 칸은 내부에 있다고 한다.

다음은 재현이가 갈 수 있는 경로 중 하나의 예이다.

  • 1번 칸 (핑크색)이 시작 (그리고 마지막) 칸이다.
  • 옅은 파란색 칸들은 경로에 포함되는 칸들이며, 방문 순서가 칸 안에 쓰여 있다.
  • x표시가 되어 있는 짙은 파란색 칸들은 내부에 있는 칸들이다.

형성된 영역은 경로에 포함되거나, 내부에 있는 모든 칸들로 이루어진다. 영역 안의 칸 $c$의 거리는 영역 안의 칸들 만 방문해서 시작 칸부터 칸 $c$에 도착할 때까지 필요한 움직임의 최소값이다. 영역 안의 칸에 대한 점수는 $A + d \times B$인데, $A$와 $B$ 는 재현이가 미리 정한 상수값이며, $d$는 이 칸의 거리이다. 다음은 위 예제의 경로에 의 해 형성된 영역 안의 각 칸들의 거리를 보여준다.

재현이가 $N$번 움직일 때 만드는 칸들로 이루어진 경로에 의해 형성된 영역의 모든 칸의 점수의 총합을 구하는 프로그램을 작성하시오. 점수의 총합은 매우 큰 값일 수 있으므로, 이 값을 $10^9 + 7$으로 나눈 나머지를 구하시오.

상세 구현

다음 함수를 구현해야 한다.

int draw_territory(int N, int A, int B, int[] D, int[] L)
  • $N$: 움직임의 수.
  • $A$, $B$: 점수 계산에 필요한 상수
  • $D$: 길이 $N$인 배열로, $D[i]$는 $i$번째 움직임의 방향
  • $L$:길이 $N$인 배열로, $L[i]$는 $i$번째 움직임에서 이동한 칸 수
  • 이 함수는 경로에 의해 형성된 영역의 모든 칸의 점수의 총합을 $10^9 + 7$로 나눈 나머지를 리턴한다.
  • 이 함수는 정확하게 한 번 호출된다.

예제

다음 호출을 생각해보자.

draw_territory(17, 2, 3,
               [1, 2, 3, 4, 5, 4, 3, 2, 1, 6, 2, 3, 4, 5, 6, 6, 1],
               [1, 2, 2, 1, 1, 1, 1, 2, 3, 2, 3, 1, 6, 3, 3, 2, 1])

이는 위 예제에서 설명한 것과 동일하다. 다음 표는 영역에서 가능한 거리마다 각 칸의 점수를 보여준다.

거리 칸 수 각 칸의 점수 총 점수
$0$ $1$ $2 + 0 \times 3 = 2$ $1 \times 2 = 2$
$1$ $4$ $2 + 1 \times 3 = 5$ $4 \times 5 = 20$
$2$ $5$ $2 + 2 \times 3 = 8$ $5 \times 8 = 40$
$3$ $6$ $2 + 3 \times 3 = 11$ $6 \times 11 = 66$
$4$ $4$ $2 + 4 \times 3 = 14$ $4 \times 14 = 56$
$5$ $3$ $2 + 5 \times 3 = 17$ $3 \times 17 = 51$
$6$ $4$ $2 + 6 \times 3 = 20$ $4 \times 20 = 80$
$7$ $4$ $2 + 7 \times 3 = 23$ $4 \times 23 = 92$
$8$ $5$ $2 + 8 \times 3 = 26$ $5 \times 26 = 130$
$9$ $3$ $2 + 9 \times 3 = 29$ $3 \times 29 = 87$
$10$ $4$ $2 + 10 \times 3 = 32$ $4 \times 32 = 128$
$11$ $5$ $2 + 11 \times 3 = 35$ $5 \times 35 = 175$
$12$ $2$ $2 + 12 \times 3 = 38$ $2 \times 38 = 76$

점수의 총합은 $2 + 20 + 40 + 66 + 56 + 51 + 80 + 92 + 130 + 87 + 128 + 175 + 76 = 1003$이다. 따라서, draw_territory 함수의 리턴값은 $1003$이어야 한다.

제한

  • $3 \le N ≤ 200 000$
  • $0 \le A,B \le 10$
  • $1 \le D[i] \le 6$ (모든 $0 \le i \le N - 1$)
  • $1 \le L[i]$ (모든 $0 \le i \le N - 1$)
  • $L$의 모든 원소의 합은 $10^9$ 을 넘지 않는다.

서브태스크

번호 배점 제한
1 3

$N = 3$, $B = 0$

2 6

$N = 3$

3 11

$L$의 모든 원소의 합은 2000을 넘지 않는다.

4 12

$B = 0$이고 $L$의 모든 원소의 합은 200 000을 넘지 않는다.

5 15

$B = 0$

6 19

$L$의 모든 원소의 합은 200 000을 넘지 않는다.

7 18

$L[i] = L[i + 1]$ (모든 $0 \le i \le N - 2$)

8 16

추가적인 제약 조건이 없다.

W3sicHJvYmxlbV9pZCI6IjIxODUxIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHVjNzIxXHVhYzAxXHVkNjE1IFx1YzYwMVx1YzVlZCIsImRlc2NyaXB0aW9uIjoiPHA+XHVjNzIxXHVhYzAxXHVkNjE1IFx1ZDBjMFx1Yzc3Y1x1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzQgXHVjZTc4XHViNGU0XHVjNzc0IFx1YmIzNFx1ZDU1Y1x1ZDU1OFx1YWM4YyBcdWIxOTNcdWM1ZWMgXHVjNzg4XHVhY2UwLCBcdWM3YWNcdWQ2MDRcdWM3NzRcdWIyOTQgXHVjNzc0IFx1YzkxMSAmcXVvdDtcdWMyZGNcdWM3OTEgXHVjZTc4JnF1b3Q7XHVjNzc0XHViNzdjXHVhY2UwIFx1YmQ4MFx1Yjk3NFx1YjI5NCBcdWNlNzggXHVjNzA0XHVjNWQwIFx1YzExYyBcdWM3ODhcdWIyZTQuIFx1YjQ1MCBcdWNlNzhcdWM3NDAgXHViYWE4XHVjMTFjXHViOWFjXHViOTdjIFx1YWNmNVx1YzcyMFx1ZDU1OFx1YmE3NCBcdWM3NzRcdWM2YzNcdWQ1NThcdWFjZTAgXHVjNzg4XHViMmU0XHVhY2UwIFx1ZDU1OFx1Yzc5MC4gXHVjN2FjXHVkNjA0XHVjNzc0XHViMjk0IFx1YjllNFx1YmM4OCBcdWIyZTRcdWM3NGMgXHVhZGY4XHViOWJjXHVhY2ZjIFx1YWMxOVx1Yzc3NCwgMVx1YmQ4MFx1ZDEzMCA2XHVhZTRjXHVjOWMwIFx1YmM4OFx1ZDYzOFx1YWMwMCBcdWJkOTlcdWM3NDAgXHViYzI5XHVkNWE1IFx1Yzc0NCBcdWI1MzBcdWI3N2NcdWMxMWMgXHVjNzc0XHVjNmMzXHVkNTVjIFx1Y2U3OCBcdWM5MTEgXHVkNTU4XHViMDk4XHViODVjIFx1Yzc3NFx1YjNkOVx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzc2MzAwNWQ0LWM4YWMtNGRlNC1hYzQ2LTQ4MjFjNmZjZTE2ZlwvLVwvcHJldmlld1wvXCIgXC8+PFwvcD5cclxuXHJcbjxwPlx1YzdhY1x1ZDYwNFx1Yzc3NFx1YWMwMCBcdWNkMWQgJE4kXHViYzg4IFx1YzZjMFx1YzljMVx1YzYwMFx1Yzc0NCBcdWI1NGMgXHViOWNjXHViNGRjXHViMjk0IFx1Y2U3OFx1YjRlNFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzBcdWIyOTQgXHVhY2JkXHViODVjXHViMjk0IFx1YzYwMVx1YzVlZFx1Yzc0NCBcdWQ2MTVcdWMxMzFcdWQ1NWNcdWIyZTQuICRpJFx1YmM4OFx1YzlmOCBcdWM2YzBcdWM5YzFcdWM3N2MgXHViNTRjXHViMjk0ICREW2ldJCBcdWJjMjlcdWQ1YTVcdWM3M2NcdWI4NWMgJExbaV0kIFx1Y2U3OFx1Yzc0NCBcdWM3NzRcdWIzZDlcdWQ1NWNcdWIyZTQuIFx1Yzc3NCBcdWFjYmRcdWI4NWNcdWIyOTQgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc0MCBcdWQyYjlcdWM5ZDVcdWM3NzQgXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPlx1Yzc3NCBcdWFjYmRcdWI4NWNcdWIyOTQgPGVtPlx1YjJlYlx1ZDYwMFx1Yzc4OFx1YjI5NFx1YjM3MDxcL2VtPiwgXHViOWM4XHVjOWMwXHViOWM5XHVjNWQwIFx1YjNjNFx1Y2MyOVx1ZDU1OFx1YjI5NCBcdWNlNzhcdWM3NDAgXHVjMmRjXHVjNzkxIFx1Y2U3OFx1YWNmYyBcdWIzZDlcdWM3N2NcdWQ1NThcdWIyZTRcdWIyOTQgXHViNzNiXHVjNzc0XHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWM3NzQgXHVhY2JkXHViODVjXHViMjk0IDxlbT5cdWIyZThcdWMyMWNcdWQ1NWNcdWIzNzA8XC9lbT4sIFx1YjllOCBcdWNjOThcdWM3NGMgXHVjMmRjXHVjNzkxXHVkNTVjIFx1Y2U3OFx1YjljYyBcdWJlN2NcdWFjZTAgXHViYWE4XHViNGUwIFx1Y2U3OFx1Yzc0MCBcdWNkNWNcdWIzMDAgXHVkNTVjIFx1YmM4OCBcdWJjMjlcdWJiMzhcdWQ1NWNcdWIyZTRcdWIyOTQgXHViNzNiXHVjNzc0XHViMmU0LiBcdWI5ZTggXHVjYzk4XHVjNzRjIFx1YzJkY1x1Yzc5MVx1ZDU1YyBcdWNlNzhcdWM3NDAgXHViOWU4IFx1YjljOFx1YzljMFx1YjljOVx1YWU0Y1x1YzljMCBcdWQ1NjlcdWNjZDBcdWMxMWMgXHVjODE1XHVkNjU1XHVkNTU4XHVhYzhjIFx1YjQ1MCBcdWJjODggXHViYzI5XHViYjM4XHVkNTVjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWM3NzQgXHVhY2JkXHViODVjXHViMjk0IDxlbT5cdWI0ZGNcdWI3ZWNcdWIwOTggXHVjNzg4XHViMjk0XHViMzcwPFwvZW0+LCBcdWFjYmRcdWI4NWNcdWM1ZDAgXHVkM2VjXHVkNTY4XHViNDE4XHViMjk0IFx1YmFhOFx1YjRlMCBcdWNlNzhcdWM3NDAgXHVjZDVjXHVjMThjXHVkNTVjIFx1ZDU1YyBcdWFjMWNcdWM3NTggXHVhY2JkXHViODVjXHVjNWQwIFx1ZDNlY1x1ZDU2OFx1YjQxOFx1YzljMCBcdWM1NGFcdWM3M2NcdWJhNzRcdWMxMWMgPGVtPlx1YjBiNFx1YmQ4MDxcL2VtPlx1YzVkMCBcdWM3ODhcdWM5YzAgXHVjNTRhXHViMjk0IFx1Y2U3OFx1YWNmYyBcdWM3NzRcdWM2YzNcdWQ1NWNcdWIyZTQuXHJcblx0PHVsPlxyXG5cdFx0PGxpPlx1YjljY1x1YzU3ZCBcdWM1YjRcdWI1YTQgXHVjZTc4XHVjNzc0IFx1YWNiZFx1Yjg1Y1x1YzVkMCBcdWQzZWNcdWQ1NjhcdWI0MThcdWM5YzAgXHVjNTRhXHVjNzNjXHViYTc0XHVjMTFjLCBcdWFjYmRcdWI4NWNcdWM1ZDAgXHVkM2VjXHVkNTY4XHViNDE4XHViMjk0IFx1Y2U3OFx1Yzc0NCBcdWM5YzBcdWIwOThcdWM5YzAgXHVjNTRhXHVhY2UwIFx1YmMyOVx1YmIzOFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMjk0IFx1Y2U3OFx1Yzc1OCBcdWFjMWNcdWMyMThcdWFjMDAgXHVjNzIwXHVkNTVjXHVkNTU4XHViMmU0XHViYTc0IFx1Yzc3NCBcdWNlNzhcdWM3NDAgPGVtPlx1YjBiNFx1YmQ4MDxcL2VtPlx1YzVkMCBcdWM3ODhcdWIyZTRcdWFjZTAgXHVkNTVjXHViMmU0LjxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1YjJlNFx1Yzc0Y1x1Yzc0MCBcdWM3YWNcdWQ2MDRcdWM3NzRcdWFjMDAgXHVhYzA4IFx1YzIxOCBcdWM3ODhcdWIyOTQgXHVhY2JkXHViODVjIFx1YzkxMSBcdWQ1NThcdWIwOThcdWM3NTggXHVjNjA4XHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPjFcdWJjODggXHVjZTc4IChcdWQ1NTFcdWQwNmNcdWMwYzkpXHVjNzc0IFx1YzJkY1x1Yzc5MSAoXHVhZGY4XHViOWFjXHVhY2UwIFx1YjljOFx1YzljMFx1YjljOSkgXHVjZTc4XHVjNzc0XHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWM2MDVcdWM3NDAgXHVkMzBjXHViNzgwXHVjMGM5IFx1Y2U3OFx1YjRlNFx1Yzc0MCBcdWFjYmRcdWI4NWNcdWM1ZDAgXHVkM2VjXHVkNTY4XHViNDE4XHViMjk0IFx1Y2U3OFx1YjRlNFx1Yzc3NFx1YmE3MCwgXHViYzI5XHViYjM4IFx1YzIxY1x1YzExY1x1YWMwMCBcdWNlNzggXHVjNTQ4XHVjNWQwIFx1YzRmMFx1YzVlYyBcdWM3ODhcdWIyZTQuPFwvbGk+XHJcblx0PGxpPnhcdWQ0NWNcdWMyZGNcdWFjMDAgXHViNDE4XHVjNWI0IFx1Yzc4OFx1YjI5NCBcdWM5ZDlcdWM3NDAgXHVkMzBjXHViNzgwXHVjMGM5IFx1Y2U3OFx1YjRlNFx1Yzc0MCBcdWIwYjRcdWJkODBcdWM1ZDAgXHVjNzg4XHViMjk0IFx1Y2U3OFx1YjRlNFx1Yzc3NFx1YjJlNC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcL2JiNjdiZGFiLTlkYjgtNDZhYS1iZjRkLTcxMDk2NDYwMzE3YVwvLVwvcHJldmlld1wvXCIgXC8+PFwvcD5cclxuXHJcbjxwPlx1ZDYxNVx1YzEzMVx1YjQxYyBcdWM2MDFcdWM1ZWRcdWM3NDAgXHVhY2JkXHViODVjXHVjNWQwIFx1ZDNlY1x1ZDU2OFx1YjQxOFx1YWM3MFx1YjA5OCwgXHViMGI0XHViZDgwXHVjNWQwIFx1Yzc4OFx1YjI5NCBcdWJhYThcdWI0ZTAgXHVjZTc4XHViNGU0XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNFx1YjJlNC4gXHVjNjAxXHVjNWVkIFx1YzU0OFx1Yzc1OCBcdWNlNzggJGMkXHVjNzU4IFx1YWM3MFx1YjlhY1x1YjI5NCBcdWM2MDFcdWM1ZWQgXHVjNTQ4XHVjNzU4IFx1Y2U3OFx1YjRlNCBcdWI5Y2MgXHViYzI5XHViYjM4XHVkNTc0XHVjMTFjIFx1YzJkY1x1Yzc5MSBcdWNlNzhcdWJkODBcdWQxMzAgXHVjZTc4ICRjJFx1YzVkMCBcdWIzYzRcdWNjMjlcdWQ1NjAgXHViNTRjXHVhZTRjXHVjOWMwIFx1ZDU0NFx1YzY5NFx1ZDU1YyBcdWM2YzBcdWM5YzFcdWM3ODRcdWM3NTggXHVjZDVjXHVjMThjXHVhYzEyXHVjNzc0XHViMmU0LiBcdWM2MDFcdWM1ZWQgXHVjNTQ4XHVjNzU4IFx1Y2U3OFx1YzVkMCBcdWIzMDBcdWQ1NWMgXHVjODEwXHVjMjE4XHViMjk0ICRBICsgZCBcXHRpbWVzIEIkXHVjNzc4XHViMzcwLCAkQSRcdWM2NDAgJEIkIFx1YjI5NCBcdWM3YWNcdWQ2MDRcdWM3NzRcdWFjMDAgXHViYmY4XHViOWFjIFx1YzgxNVx1ZDU1YyBcdWMwYzFcdWMyMThcdWFjMTJcdWM3NzRcdWJhNzAsICRkJFx1YjI5NCBcdWM3NzQgXHVjZTc4XHVjNzU4IFx1YWM3MFx1YjlhY1x1Yzc3NFx1YjJlNC4gXHViMmU0XHVjNzRjXHVjNzQwIFx1YzcwNCBcdWM2MDhcdWM4MWNcdWM3NTggXHVhY2JkXHViODVjXHVjNWQwIFx1Yzc1OCBcdWQ1NzQgXHVkNjE1XHVjMTMxXHViNDFjIFx1YzYwMVx1YzVlZCBcdWM1NDhcdWM3NTggXHVhYzAxIFx1Y2U3OFx1YjRlNFx1Yzc1OCBcdWFjNzBcdWI5YWNcdWI5N2MgXHViY2Y0XHVjNWVjXHVjOTAwXHViMmU0LjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzViNDM5NmRmLTZlMjktNGFhNC1hZjRkLTQ5YzE4NjZkODk1OVwvLVwvcHJldmlld1wvXCIgXC8+PFwvcD5cclxuXHJcbjxwPlx1YzdhY1x1ZDYwNFx1Yzc3NFx1YWMwMCAkTiRcdWJjODggXHVjNmMwXHVjOWMxXHVjNzdjIFx1YjU0YyBcdWI5Y2NcdWI0ZGNcdWIyOTQgXHVjZTc4XHViNGU0XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNCBcdWFjYmRcdWI4NWNcdWM1ZDAgXHVjNzU4XHVkNTc0IFx1ZDYxNVx1YzEzMVx1YjQxYyBcdWM2MDFcdWM1ZWRcdWM3NTggXHViYWE4XHViNGUwIFx1Y2U3OFx1Yzc1OCBcdWM4MTBcdWMyMThcdWM3NTggXHVjZDFkXHVkNTY5XHVjNzQ0IFx1YWQ2Y1x1ZDU1OFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LiBcdWM4MTBcdWMyMThcdWM3NTggXHVjZDFkXHVkNTY5XHVjNzQwIFx1YjllNFx1YzZiMCBcdWQwNzAgXHVhYzEyXHVjNzdjIFx1YzIxOCBcdWM3ODhcdWM3M2NcdWJiYzBcdWI4NWMsIFx1Yzc3NCBcdWFjMTJcdWM3NDQgJDEwXjkgKyA3JFx1YzczY1x1Yjg1YyBcdWIwOThcdWIyMDggXHViMDk4XHViYTM4XHVjOWMwXHViOTdjIFx1YWQ2Y1x1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG4iLCJpbnB1dCI6IiIsIm91dHB1dCI6IiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiIsImxpbWl0IjoiPHVsPlxyXG5cdDxsaT4kMyBcXGxlIE4gJmxlOyAyMDAgMDAwJDxcL2xpPlxyXG5cdDxsaT4kMCBcXGxlIEEsQiBcXGxlIDEwJDxcL2xpPlxyXG5cdDxsaT4kMSBcXGxlIERbaV0gXFxsZSA2JCAoXHViYWE4XHViNGUwICQwIFxcbGUgaSBcXGxlIE4gLSAxJCk8XC9saT5cclxuXHQ8bGk+JDEgXFxsZSBMW2ldJCAoXHViYWE4XHViNGUwICQwIFxcbGUgaSBcXGxlIE4gLSZuYnNwOzEkKTxcL2xpPlxyXG5cdDxsaT4kTCRcdWM3NTggXHViYWE4XHViNGUwIFx1YzZkMFx1YzE4Y1x1Yzc1OCBcdWQ1NjlcdWM3NDAgJDEwXjkkIFx1Yzc0NCBcdWIxMThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuIiwic3VidGFzazEiOiI8cD4kTiA9IDMkLCAkQiA9IDAkPFwvcD5cclxuIiwic3VidGFzazIiOiI8cD4kTiA9IDMkPFwvcD5cclxuIiwic3VidGFzazMiOiI8cD4kTCRcdWM3NTggXHViYWE4XHViNGUwIFx1YzZkMFx1YzE4Y1x1Yzc1OCBcdWQ1NjlcdWM3NDAgMjAwMFx1Yzc0NCBcdWIxMThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LjxcL3A+XHJcbiIsInN1YnRhc2s0IjoiPHA+JEIgPSAwJFx1Yzc3NFx1YWNlMCAkTCRcdWM3NTggXHViYWE4XHViNGUwIFx1YzZkMFx1YzE4Y1x1Yzc1OCBcdWQ1NjlcdWM3NDAgMjAwIDAwMFx1Yzc0NCBcdWIxMThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LjxcL3A+XHJcbiIsInN1YnRhc2s1IjoiPHA+JEIgPSAwJDxcL3A+XHJcbiIsInN1YnRhc2s2IjoiPHA+JEwkXHVjNzU4IFx1YmFhOFx1YjRlMCBcdWM2ZDBcdWMxOGNcdWM3NTggXHVkNTY5XHVjNzQwIDIwMCAwMDBcdWM3NDQgXHViMTE4XHVjOWMwIFx1YzU0YVx1YjI5NFx1YjJlNC48XC9wPlxyXG4iLCJzdWJ0YXNrNyI6IjxwPiRMW2ldID0gTFtpICsgMV0kIChcdWJhYThcdWI0ZTAgJDAgXFxsZSBpIFxcbGUgTiAtIDIkKTxcL3A+XHJcbiIsInN1YnRhc2s4IjoiPHA+XHVjZDk0XHVhYzAwXHVjODAxXHVjNzc4IFx1YzgxY1x1YzU3ZCBcdWM4NzBcdWFjNzRcdWM3NzQgXHVjNWM2XHViMmU0LjxcL3A+XHJcbiIsImN1c3RvbV9pbXBsZW1lbnRhdGlvbiI6IjxwPlx1YjJlNFx1Yzc0YyBcdWQ1NjhcdWMyMThcdWI5N2MgXHVhZDZjXHVkNjA0XHVkNTc0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHByZT5cclxuaW50IGRyYXdfdGVycml0b3J5KGludCBOLCBpbnQgQSwgaW50IEIsIGludFtdIEQsIGludFtdIEwpPFwvcHJlPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kTiQ6IFx1YzZjMFx1YzljMVx1Yzc4NFx1Yzc1OCBcdWMyMTguPFwvbGk+XHJcblx0PGxpPiRBJCwgJEIkOiBcdWM4MTBcdWMyMTggXHVhY2M0XHVjMGIwXHVjNWQwIFx1ZDU0NFx1YzY5NFx1ZDU1YyBcdWMwYzFcdWMyMTg8XC9saT5cclxuXHQ8bGk+JEQkOiBcdWFlMzhcdWM3NzQgJE4kXHVjNzc4IFx1YmMzMFx1YzVmNFx1Yjg1YywgJERbaV0kXHViMjk0ICRpJFx1YmM4OFx1YzlmOCBcdWM2YzBcdWM5YzFcdWM3ODRcdWM3NTggXHViYzI5XHVkNWE1PFwvbGk+XHJcblx0PGxpPiRMJDpcdWFlMzhcdWM3NzQgJE4kXHVjNzc4IFx1YmMzMFx1YzVmNFx1Yjg1YywgJExbaV0kXHViMjk0ICRpJFx1YmM4OFx1YzlmOCBcdWM2YzBcdWM5YzFcdWM3ODRcdWM1ZDBcdWMxMWMgXHVjNzc0XHViM2Q5XHVkNTVjIFx1Y2U3OCBcdWMyMTg8XC9saT5cclxuXHQ8bGk+XHVjNzc0IFx1ZDU2OFx1YzIxOFx1YjI5NCBcdWFjYmRcdWI4NWNcdWM1ZDAgXHVjNzU4XHVkNTc0IFx1ZDYxNVx1YzEzMVx1YjQxYyBcdWM2MDFcdWM1ZWRcdWM3NTggXHViYWE4XHViNGUwIFx1Y2U3OFx1Yzc1OCBcdWM4MTBcdWMyMThcdWM3NTggXHVjZDFkXHVkNTY5XHVjNzQ0ICQxMF45ICsgNyRcdWI4NWMgXHViMDk4XHViMjA4IFx1YjA5OFx1YmEzOFx1YzljMFx1Yjk3YyBcdWI5YWNcdWQxMzRcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1Yzc3NCBcdWQ1NjhcdWMyMThcdWIyOTQgXHVjODE1XHVkNjU1XHVkNTU4XHVhYzhjIFx1ZDU1YyBcdWJjODggXHVkNjM4XHVjZDljXHViNDFjXHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuIiwiY3VzdG9tX3NhbXBsZSI6IjxwPlx1YjJlNFx1Yzc0YyBcdWQ2MzhcdWNkOWNcdWM3NDQgXHVjMGRkXHVhYzAxXHVkNTc0XHViY2Y0XHVjNzkwLjxcL3A+XHJcblxyXG48cHJlPlxyXG5kcmF3X3RlcnJpdG9yeSgxNywgMiwgMyxcclxuICAgICAgICAgICAgICAgWzEsIDIsIDMsIDQsIDUsIDQsIDMsIDIsIDEsIDYsIDIsIDMsIDQsIDUsIDYsIDYsIDFdLFxyXG4gICAgICAgICAgICAgICBbMSwgMiwgMiwgMSwgMSwgMSwgMSwgMiwgMywgMiwgMywgMSwgNiwgMywgMywgMiwgMV0pPFwvcHJlPlxyXG5cclxuPHA+XHVjNzc0XHViMjk0IFx1YzcwNCBcdWM2MDhcdWM4MWNcdWM1ZDBcdWMxMWMgXHVjMTI0XHViYTg1XHVkNTVjIFx1YWM4M1x1YWNmYyBcdWIzZDlcdWM3N2NcdWQ1NThcdWIyZTQuIFx1YjJlNFx1Yzc0YyBcdWQ0NWNcdWIyOTQgXHVjNjAxXHVjNWVkXHVjNWQwXHVjMTFjIFx1YWMwMFx1YjJhNVx1ZDU1YyBcdWFjNzBcdWI5YWNcdWI5YzhcdWIyZTQgXHVhYzAxIFx1Y2U3OFx1Yzc1OCBcdWM4MTBcdWMyMThcdWI5N2MgXHViY2Y0XHVjNWVjXHVjOTAwXHViMmU0LjxcL3A+XHJcblxyXG48dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZCB0YWJsZS1jZW50ZXItNDBcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD5cdWFjNzBcdWI5YWM8XC90aD5cclxuXHRcdFx0PHRoPlx1Y2U3OCBcdWMyMTg8XC90aD5cclxuXHRcdFx0PHRoPlx1YWMwMSBcdWNlNzhcdWM3NTggXHVjODEwXHVjMjE4PFwvdGg+XHJcblx0XHRcdDx0aD5cdWNkMWQgXHVjODEwXHVjMjE4PFwvdGg+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90aGVhZD5cclxuXHQ8dGJvZHk+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4kMCQ8XC90ZD5cclxuXHRcdFx0PHRkPiQxJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDIgKyAwIFxcdGltZXMgMyA9IDIkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMSBcXHRpbWVzIDIgPSAyJDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4kMSQ8XC90ZD5cclxuXHRcdFx0PHRkPiQ0JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDIgKyAxIFxcdGltZXMgMyA9IDUkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kNCBcXHRpbWVzIDUgPSAyMCQ8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+JDIkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kNSQ8XC90ZD5cclxuXHRcdFx0PHRkPiQyICsgMiBcXHRpbWVzIDMgPSA4JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDUgXFx0aW1lcyA4ID0gNDAkPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPiQzJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDYkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMiArIDMgXFx0aW1lcyAzID0gMTEkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kNiBcXHRpbWVzIDExID0gNjYkPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPiQ0JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDQkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMiArIDQgXFx0aW1lcyAzID0gMTQkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kNCBcXHRpbWVzIDE0ID0gNTYkPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPiQ1JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDMkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMiArIDUgXFx0aW1lcyAzID0gMTckPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMyBcXHRpbWVzIDE3ID0gNTEkPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPiQ2JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDQkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMiArIDYgXFx0aW1lcyAzID0gMjAkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kNCBcXHRpbWVzIDIwID0gODAkPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPiQ3JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDQkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMiArIDcgXFx0aW1lcyAzID0gMjMkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kNCBcXHRpbWVzIDIzID0gOTIkPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPiQ4JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDUkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMiArIDggXFx0aW1lcyAzID0gMjYkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kNSBcXHRpbWVzIDI2ID0gMTMwJDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4kOSQ8XC90ZD5cclxuXHRcdFx0PHRkPiQzJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDIgKyA5IFxcdGltZXMgMyA9IDI5JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDMgXFx0aW1lcyAyOSA9IDg3JDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4kMTAkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kNCQ8XC90ZD5cclxuXHRcdFx0PHRkPiQyICsgMTAgXFx0aW1lcyAzID0gMzIkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kNCBcXHRpbWVzIDMyID0gMTI4JDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4kMTEkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kNSQ8XC90ZD5cclxuXHRcdFx0PHRkPiQyICsgMTEgXFx0aW1lcyAzID0gMzUkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kNSBcXHRpbWVzIDM1ID0gMTc1JDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4kMTIkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMiQ8XC90ZD5cclxuXHRcdFx0PHRkPiQyICsgMTIgXFx0aW1lcyAzID0gMzgkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMiBcXHRpbWVzIDM4ID0gNzYkPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90Ym9keT5cclxuPFwvdGFibGU+XHJcblxyXG48cD5cdWM4MTBcdWMyMThcdWM3NTggXHVjZDFkXHVkNTY5XHVjNzQwICQyICsgMjAgKyA0MCArIDY2ICsgNTYgKyA1MSArIDgwICsgOTIgKyAxMzAgKyA4NyArIDEyOCArIDE3NSArIDc2ID0gMTAwMyRcdWM3NzRcdWIyZTQuIFx1YjUzMFx1Yjc3Y1x1YzExYywgPGNvZGU+ZHJhd190ZXJyaXRvcnk8XC9jb2RlPiBcdWQ1NjhcdWMyMThcdWM3NTggXHViOWFjXHVkMTM0XHVhYzEyXHVjNzQwICQxMDAzJFx1Yzc3NFx1YzViNFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiY3VzdG9tX2dyYWRlciI6IjxwPlx1YzBkOFx1ZDUwYyBcdWFkZjhcdWI4MDhcdWM3NzRcdWIzNTRcdWIyOTQgXHViMmU0XHVjNzRjIFx1YzU5MVx1YzJkZFx1YzczY1x1Yjg1YyBcdWM3ODVcdWI4MjVcdWM3NDQgXHVjNzdkXHViMjk0XHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPmxpbmUgMTogJE4kICRBJCAkQiQ8XC9saT5cclxuXHQ8bGk+bGluZSAyICsgJGkkICgkMCBcXGxlIGkgXFxsZSBOIC0gMSQpOiAkRFtpXSQgJExbaV0kPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHVjMGQ4XHVkNTBjIFx1YWRmOFx1YjgwOFx1Yzc3NFx1YjM1NFx1YjI5NCBcdWIyZTRcdWM3NGMgXHVjNTkxXHVjMmRkXHVjNzNjXHViODVjIFx1YjJmNVx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+bGluZSAxOiA8Y29kZT5kcmF3X3RlcnJpdG9yeTxcL2NvZGU+XHVjNzU4IFx1YjlhY1x1ZDEzNFx1YWMxMjxcL2xpPlxyXG48XC91bD5cclxuIiwiY3VzdG9tX2F0dGFjaG1lbnQiOiI8dWw+XHJcblx0PGxpPjxhIGhyZWY9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC81MDUwMGZmNy1hYjAyLTQ0MWEtYjU4YS04OGJjOWJkNjIzZjhcL1wiPmhleGFnb24uemlwPFwvYT48XC9saT5cclxuPFwvdWw+XHJcbiJ9LHsicHJvYmxlbV9pZCI6IjIxODUxIiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiSGV4YWdvbmFsIFRlcnJpdG9yeSIsImRlc2NyaXB0aW9uIjoiPHA+UGFrIERlbmdrbGVrIGlzIHN0YW5kaW5nIGF0IGEgY2VsbCwgY2FsbGVkIHRoZSBpbml0aWFsIGNlbGwsIG9uIGFuIGluZmluaXRlIGhleGFnb25hbCB0aWxpbmcuIFR3byBjZWxscyBpbiBhIGhleGFnb25hbCB0aWxpbmcgYXJlIHNhaWQgdG8gYmUgbmVpZ2hib3VyaW5nIGlmIHRoZXkgc2hhcmUgYSBjb21tb24gc2lkZS4gSW4gb25lIHN0ZXAsIFBhayBEZW5na2xlayBjYW4gbW92ZSBmcm9tIG9uZSBjZWxsIHRvIG9uZSBvZiBpdHMgbmVpZ2hib3VycyBieSBtb3ZpbmcgdG93YXJkcyBvbmUgb2YgdGhlIHNpeCBwb3NzaWJsZSBkaXJlY3Rpb25zLCBudW1iZXJlZCBmcm9tIDEgdG8gNiwgYXMgaWxsdXN0cmF0ZWQgYnkgdGhlIGZvbGxvd2luZyBmaWd1cmUuPFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvNzYzMDA1ZDQtYzhhYy00ZGU0LWFjNDYtNDgyMWM2ZmNlMTZmXC8tXC9wcmV2aWV3XC9cIiBcLz48XC9wPlxyXG5cclxuPHA+UGFrIERlbmdrbGVrIHdpbGwgZm9ybSBhIHRlcnJpdG9yeSBieSBmb2xsb3dpbmcgYSBwYXRoIHRoYXQgY29uc2lzdHMgb2YgYSBzZXF1ZW5jZSBvZiBjZWxscyB0aGF0IGFyZSB2aXNpdGVkIGJ5IGEgc2VxdWVuY2Ugb2YgJE4kIG1vdmVzLiBUaGUgJGkkLXRoIG1vdmUgaXMgbWFkZSBieSBjaG9vc2luZyBhIGRpcmVjdGlvbiAkRFtpXSQsIHRoZW4gcGVyZm9ybWluZyAkTFtpXSQgc3RlcHMgaW4gdGhlIGNob3NlbiBkaXJlY3Rpb24uIFRoZSBwYXRoIGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+VGhlIHBhdGggaXMmbmJzcDs8ZW0+Y2xvc2VkPFwvZW0+LCBtZWFuaW5nIHRoYXQgdGhlIGNlbGwgYXQgdGhlIGVuZCBvZiB0aGUgc2VxdWVuY2UgaXMgdGhlIHNhbWUgYXMgdGhlIGNlbGwgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VxdWVuY2UuPFwvbGk+XHJcblx0PGxpPlRoZSBwYXRoIGlzJm5ic3A7PGVtPnNpbXBsZTxcL2VtPiwgbWVhbmluZyB0aGF0IGV2ZXJ5IGNlbGwgY2FuIGJlIHZpc2l0ZWQgYXQgbW9zdCBvbmNlLCBleGNlcHQgZm9yIHRoZSBpbml0aWFsIGNlbGwsIHdoaWNoIGlzIHZpc2l0ZWQgZXhhY3RseSB0d2ljZSAoYXQgdGhlIGJlZ2lubmluZyBhbmQgYXQgdGhlIGVuZCkuPFwvbGk+XHJcblx0PGxpPlRoZSBwYXRoIGlzJm5ic3A7PGVtPmV4cG9zZWQ8XC9lbT4sIG1lYW5pbmcgdGhhdCBlYWNoIGNlbGwgaW4gdGhlIHBhdGggaXMgbmVpZ2hib3VyaW5nIHdpdGggYXQgbGVhc3Qgb25lIGNlbGwgdGhhdCBpcyBub3QgaW4gdGhlIHBhdGggYW5kIGlzIG5vdCZuYnNwOzxlbT5pbnNpZGU8XC9lbT4uXHJcblx0PHVsPlxyXG5cdFx0PGxpPkEgY2VsbCBpcyBzYWlkIHRvIGJlJm5ic3A7PGVtPmluc2lkZTxcL2VtPiZuYnNwO2lmIGl0IGlzIG5vdCBpbiB0aGUgcGF0aCBhbmQgeW91IGNhbiBvbmx5IHZpc2l0IGEgZmluaXRlIG51bWJlciBvZiBjZWxscyB1c2luZyBhbnkgc2VxdWVuY2Ugb2Ygc3RlcHMgd2l0aG91dCB2aXNpdGluZyBhbnkgY2VsbCBpbiB0aGUgcGF0aC48XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5UaGUgZm9sbG93aW5nIGlzIGFuIGV4YW1wbGUgb2YgYSBwYXRoIHRoYXQgY2FuIGJlIGZvbGxvd2VkIGJ5IFBhayBEZW5na2xlay48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5UaGUgY2VsbCBudW1iZXJlZCAkMSQgKHNoYWRlZCBwaW5rKSBpcyB0aGUgaW5pdGlhbCAoYW5kIGZpbmFsKSBjZWxsLjxcL2xpPlxyXG5cdDxsaT5DZWxscyB0aGF0IGFyZSBudW1iZXJlZCAoc2hhZGVkIGxpZ2h0IGJsdWUpIGFyZSBjZWxscyBpbiB0aGUgcGF0aCwgbnVtYmVyZWQgaW4gdGhlIG9yZGVyIHRoZXkgYXJlIHZpc2l0ZWQuPFwvbGk+XHJcblx0PGxpPkNlbGxzIHRoYXQgYXJlIGNyb3NzZWQgKHNoYWRlZCBkYXJrIGJsdWUpIGFyZSBjZWxscyB0aGF0IGFyZSBpbnNpZGUuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9iYjY3YmRhYi05ZGI4LTQ2YWEtYmY0ZC03MTA5NjQ2MDMxN2FcLy1cL3ByZXZpZXdcL1wiIFwvPjxcL3A+XHJcblxyXG48cD5UaGUgZm9ybWVkIHRlcnJpdG9yeSB3aWxsIGNvbnNpc3Qgb2YgYWxsIGNlbGxzIHRoYXQgYXJlIGluIHRoZSBwYXRoIG9yIGFyZSBpbnNpZGUuIFRoZSBkaXN0YW5jZSBvZiBhIGNlbGwgJGMkIGluIHRoZSB0ZXJyaXRvcnkgaXMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIHN0ZXBzIG5lZWRlZCB0byBtb3ZlIGZyb20gdGhlIGluaXRpYWwgY2VsbCB0byB0aGUgY2VsbCAkYyQgYnkgdmlzaXRpbmcgb25seSBjZWxscyBpbiB0aGUgdGVycml0b3J5LiBUaGUgc2NvcmUgb2YgYSBjZWxsIGluIHRoZSB0ZXJyaXRvcnkgaXMgZGVmaW5lZCBhcyAkQSArIGQgXFx0aW1lcyBCJCwgd2hlcmUgJEEkIGFuZCAkQiQgYXJlIGNvbnN0YW50cyBwcmVkZXRlcm1pbmVkIGJ5IFBhayBEZW5na2xlaywgYW5kICRkJCBpcyB0aGUgZGlzdGFuY2Ugb2YgdGhlIGNlbGwgaW4gdGhlIHRlcnJpdG9yeS4gVGhlIGZvbGxvd2luZyBpcyB0aGUgaWxsdXN0cmF0aW9uIG9mIHRoZSBkaXN0YW5jZSBvZiBlYWNoIGNlbGwgaW4gdGhlIHRlcnJpdG9yeSBmb3JtZWQgdXNpbmcgdGhlIHBhdGggZnJvbSB0aGUgZXhhbXBsZSBhYm92ZS48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC81YjQzOTZkZi02ZTI5LTRhYTQtYWY0ZC00OWMxODY2ZDg5NTlcLy1cL3ByZXZpZXdcL1wiIFwvPjxcL3A+XHJcblxyXG48cD5IZWxwIFBhayBEZW5na2xlayB0byBjYWxjdWxhdGUgdGhlIHRvdGFsIHNjb3JlIG9mIGFsbCBjZWxscyBpbiB0aGUgdGVycml0b3J5IGZvcm1lZCBieSB0aGUgJE4kIG1vdmVzIHRoYXQgaGUgd2lsbCBtYWtlLiBBcyB0aGUgdG90YWwgc2NvcmUgY2FuIGJlIGxhcmdlLCBjYWxjdWxhdGUgaXQgbW9kdWxvICQxMF45Jm5ic3A7KyA3JC48XC9wPlxyXG4iLCJpbnB1dCI6IiIsIm91dHB1dCI6IiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2giLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+JDMgXFxsZSBOIFxcbGUgMjAwXFwsMDAwJDxcL2xpPlxyXG5cdDxsaT4kMCBcXGxlIEEsIEIgXFxsZSAxMF45JDxcL2xpPlxyXG5cdDxsaT4kMSBcXGxlIERbaV0gXFxsZSA2JCAoZm9yIGFsbCAkMCBcXGxlIGkgXFxsZSBOIC0gMSQpPFwvbGk+XHJcblx0PGxpPiQxIFxcbGUgTFtpXSQgKGZvciBhbGwgJDAgXFxsZSBpIFxcbGUgTiAtIDEkKTxcL2xpPlxyXG5cdDxsaT5UaGUgc3VtIG9mIGFsbCBlbGVtZW50cyBvZiAkTCQgZG9lcyBub3QgZXhjZWVkICQxMF45JC48XC9saT5cclxuXHQ8bGk+VGhlIHBhdGggaXMgY2xvc2VkLCBzaW1wbGUsIGFuZCBleHBvc2VkLjxcL2xpPlxyXG48XC91bD5cclxuIiwic3VidGFzazEiOiI8cD4kTiA9IDMkLCAkQiA9IDAkPFwvcD5cclxuIiwic3VidGFzazIiOiI8cD4kTiA9IDMkPFwvcD5cclxuIiwic3VidGFzazMiOiI8cD5UaGUgc3VtIG9mIGFsbCBlbGVtZW50cyBvZiAkTCQgZG9lcyBub3QgZXhjZWVkICQyMDAwJC48XC9wPlxyXG4iLCJzdWJ0YXNrNCI6IjxwPiRCID0gMCQsIHRoZSBzdW0gb2YgYWxsIGVsZW1lbnRzIG9mICRMJCBkb2VzIG5vdCBleGNlZWQgJDIwMFxcLDAwMCQuPFwvcD5cclxuIiwic3VidGFzazUiOiI8cD4kQiA9IDAkPFwvcD5cclxuIiwic3VidGFzazYiOiI8cD5UaGUgc3VtIG9mIGFsbCBlbGVtZW50cyBvZiAkTCQgZG9lcyBub3QgZXhjZWVkICQyMDBcXCwwMDAkLjxcL3A+XHJcbiIsInN1YnRhc2s3IjoiPHA+JExbaV0gPSBMW2kgKyAxXSQgKGZvciBhbGwgJDAgXFxsZSBpIFxcbGUgTiAtIDIkKTxcL3A+XHJcbiIsInN1YnRhc2s4IjoiPHA+Tm8gYWRkaXRpb25hbCBjb25zdHJhaW50cy48XC9wPlxyXG4iLCJjdXN0b21faW1wbGVtZW50YXRpb24iOiI8cD5Zb3Ugc2hvdWxkIGltcGxlbWVudCB0aGUgZm9sbG93aW5nIHByb2NlZHVyZS48XC9wPlxyXG5cclxuPHByZT5cclxuPGNvZGU+aW50IGRyYXdfdGVycml0b3J5KGludCBOLCBpbnQgQSwgaW50IEIsIGludFtdIEQsIGludFtdIEwpXHJcbjxcL2NvZGU+PFwvcHJlPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kTiQ6IHRoZSBudW1iZXIgb2YgbW92ZXMuPFwvbGk+XHJcblx0PGxpPiRBJCwgJEIkOiB0aGUgY29uc3RhbnRzIGZvciB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIHNjb3Jlcy48XC9saT5cclxuXHQ8bGk+JEQkOiBhbiBhcnJheSBvZiBsZW5ndGggJE4kLCB3aGVyZSAkRFtpXSQgaXMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgJGkkLXRoIG1vdmUuPFwvbGk+XHJcblx0PGxpPiRMJDogYW4gYXJyYXkgb2YgbGVuZ3RoICROJCwgd2hlcmUgJExbaV0kIGlzIHRoZSBudW1iZXIgb2Ygc3RlcHMgbWFkZSBieSB0aGUgJGkkLXRoIG1vdmUuPFwvbGk+XHJcblx0PGxpPlRoaXMgcHJvY2VkdXJlIHNob3VsZCByZXR1cm4gdGhlIHRvdGFsIHNjb3JlIG9mIHRoZSBkcmF3biB0ZXJyaXRvcnkgbW9kdWxvICQxMF45Jm5ic3A7KyA3JC48XC9saT5cclxuXHQ8bGk+VGhpcyBwcm9jZWR1cmUgaXMgY2FsbGVkIGV4YWN0bHkgb25jZS48XC9saT5cclxuPFwvdWw+XHJcbiIsImN1c3RvbV9zYW1wbGUiOiI8cD5Db25zaWRlciB0aGUgZm9sbG93aW5nIGNhbGw6PFwvcD5cclxuXHJcbjxwcmU+XHJcbjxjb2RlPmRyYXdfdGVycml0b3J5KDE3LCAyLCAzLFxyXG4gICAgICAgICAgICAgICBbMSwgMiwgMywgNCwgNSwgNCwgMywgMiwgMSwgNiwgMiwgMywgNCwgNSwgNiwgNiwgMV0sXHJcbiAgICAgICAgICAgICAgIFsxLCAyLCAyLCAxLCAxLCAxLCAxLCAyLCAzLCAyLCAzLCAxLCA2LCAzLCAzLCAyLCAxXSlcclxuPFwvY29kZT48XC9wcmU+XHJcblxyXG48cD5UaGUgbW92ZXMgYXJlIGFjdHVhbGx5IHRoZSBzYW1lIGFzIHdoYXQgaXMgaWxsdXN0cmF0ZWQgZnJvbSB0aGUgZGVzY3JpcHRpb24uIFRoZSBmb2xsb3dpbmcgdGFibGUgbGlzdHMgdGhlIHNjb3JlIG9mIGVhY2ggY2VsbCBmb3IgZXZlcnkgcG9zc2libGUgZGlzdGFuY2UgaW4gdGhlIHRlcnJpdG9yeS48XC9wPlxyXG5cclxuPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWQgdGFibGUtY2VudGVyLTQwXCI+XHJcblx0PHRoZWFkPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGg+RGlzdGFuY2U8XC90aD5cclxuXHRcdFx0PHRoPk51bWJlciBvZiBjZWxsczxcL3RoPlxyXG5cdFx0XHQ8dGg+U2NvcmUgb2YgZWFjaCBjZWxsPFwvdGg+XHJcblx0XHRcdDx0aD5Ub3RhbCBzY29yZTxcL3RoPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGhlYWQ+XHJcblx0PHRib2R5PlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+JDAkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMSQ8XC90ZD5cclxuXHRcdFx0PHRkPiQyICsgMCBcXHRpbWVzIDMgPSAyJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDEgXFx0aW1lcyAyID0gMiQ8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+JDEkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kNCQ8XC90ZD5cclxuXHRcdFx0PHRkPiQyICsgMSBcXHRpbWVzIDMgPSA1JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDQgXFx0aW1lcyA1ID0gMjAkPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPiQyJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDUkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMiArIDIgXFx0aW1lcyAzID0gOCQ8XC90ZD5cclxuXHRcdFx0PHRkPiQ1IFxcdGltZXMgOCA9IDQwJDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4kMyQ8XC90ZD5cclxuXHRcdFx0PHRkPiQ2JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDIgKyAzIFxcdGltZXMgMyA9IDExJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDYgXFx0aW1lcyAxMSA9IDY2JDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4kNCQ8XC90ZD5cclxuXHRcdFx0PHRkPiQ0JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDIgKyA0IFxcdGltZXMgMyA9IDE0JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDQgXFx0aW1lcyAxNCA9IDU2JDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4kNSQ8XC90ZD5cclxuXHRcdFx0PHRkPiQzJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDIgKyA1IFxcdGltZXMgMyA9IDE3JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDMgXFx0aW1lcyAxNyA9IDUxJDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4kNiQ8XC90ZD5cclxuXHRcdFx0PHRkPiQ0JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDIgKyA2IFxcdGltZXMgMyA9IDIwJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDQgXFx0aW1lcyAyMCA9IDgwJDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4kNyQ8XC90ZD5cclxuXHRcdFx0PHRkPiQ0JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDIgKyA3IFxcdGltZXMgMyA9IDIzJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDQgXFx0aW1lcyAyMyA9IDkyJDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0ZD4kOCQ8XC90ZD5cclxuXHRcdFx0PHRkPiQ1JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDIgKyA4IFxcdGltZXMgMyA9IDI2JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDUgXFx0aW1lcyAyNiA9IDEzMCQ8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+JDkkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMyQ8XC90ZD5cclxuXHRcdFx0PHRkPiQyICsgOSBcXHRpbWVzIDMgPSAyOSQ8XC90ZD5cclxuXHRcdFx0PHRkPiQzIFxcdGltZXMgMjkgPSA4NyQ8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+JDEwJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDQkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMiArIDEwIFxcdGltZXMgMyA9IDMyJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDQgXFx0aW1lcyAzMiA9IDEyOCQ8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+JDExJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDUkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMiArIDExIFxcdGltZXMgMyA9IDM1JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDUgXFx0aW1lcyAzNSA9IDE3NSQ8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGQ+JDEyJDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDIkPFwvdGQ+XHJcblx0XHRcdDx0ZD4kMiArIDEyIFxcdGltZXMgMyA9IDM4JDxcL3RkPlxyXG5cdFx0XHQ8dGQ+JDIgXFx0aW1lcyAzOCA9IDc2JDxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGJvZHk+XHJcbjxcL3RhYmxlPlxyXG5cclxuPHA+VGhlIHRvdGFsIHNjb3JlIGlzICQyICsgMjAgKyA0MCArIDY2ICsgNTYgKyA1MSArIDgwICsgOTIgKyAxMzAgKyA4NyArIDEyOCArIDE3NSArIDc2ID0gMTAwMyQuIFRoZXJlZm9yZSwgdGhlIHByb2NlZHVyZSZuYnNwOzxjb2RlPmRyYXdfdGVycml0b3J5PFwvY29kZT4mbmJzcDtzaG91bGQgcmV0dXJuICQxMDAzJC48XC9wPlxyXG4iLCJjdXN0b21fZ3JhZGVyIjoiPHA+VGhlIHNhbXBsZSBncmFkZXIgcmVhZHMgdGhlIGlucHV0IGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPmxpbmUgJDEkOiAkTiBcXDsgQSBcXDsgQiQ8XC9saT5cclxuXHQ8bGk+bGluZSAkMiArIGkkICgkMCBcXGxlIGkgXFxsZSBOIC0gMSQpOiAkRFtpXSBcXDsgTFtpXSQ8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5UaGUgc2FtcGxlIGdyYWRlciBwcmludHMgeW91ciBhbnN3ZXIgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+bGluZSAkMSQ6IHJldHVybiB2YWx1ZSBvZiZuYnNwOzxjb2RlPmRyYXdfdGVycml0b3J5PFwvY29kZT48XC9saT5cclxuPFwvdWw+XHJcbiIsImN1c3RvbV9hdHRhY2htZW50IjoiPHVsPlxyXG5cdDxsaT48YSBocmVmPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvNTA1MDBmZjctYWIwMi00NDFhLWI1OGEtODhiYzliZDYyM2Y4XC9cIj5oZXhhZ29uLnppcDxcL2E+PFwvbGk+XHJcbjxcL3VsPlxyXG4ifV0=

샘플 그레이더

샘플 그레이더는 다음 양식으로 입력을 읽는다.

  • line 1: $N$ $A$ $B$
  • line 2 + $i$ ($0 \le i \le N - 1$): $D[i]$ $L[i]$

샘플 그레이더는 다음 양식으로 답을 출력한다.

  • line 1: draw_territory의 리턴값

첨부

제출할 수 있는 언어

C++17, C++14, C++20, C++14 (Clang), C++17 (Clang), C++20 (Clang)

채점 및 기타 정보

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