A - Rearranging ABC

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 100

問題文

長さ 3 の英大文字からなる文字列 S が与えられます。

S の各文字を並び替えることで S を文字列 ABC と一致させることができるか判定してください。

制約

  • S は英大文字からなる長さ 3 の文字列

入力

入力は以下の形式で標準入力から与えられる。

S

出力

S の各文字を並び替えることで文字列 ABC と一致させることができるなら Yes を、そうでないなら No を出力せよ。


入力例 1

BAC

出力例 1

Yes

S1 文字目と S2 文字目を入れ替えることで ABC と一致させることができます。


入力例 2

AAC

出力例 2

No

どのように並び替えても SABC と一致させることはできません。


入力例 3

ABC

出力例 3

Yes

入力例 4

ARC

出力例 4

No

Score : 100 points

Problem Statement

You are given a string S of length 3 consisting of uppercase English letters.

Determine whether it is possible to rearrange the characters in S to make it match the string ABC.

Constraints

  • S is a string of length 3 consisting of uppercase English letters.

Input

The input is given from Standard Input in the following format:

S

Output

Print Yes if it is possible to rearrange the characters in S to make it match the string ABC, and No otherwise.


Sample Input 1

BAC

Sample Output 1

Yes

You can make S match ABC by swapping the first and second characters of S.


Sample Input 2

AAC

Sample Output 2

No

You cannot make S match ABC no matter how you rearrange the characters.


Sample Input 3

ABC

Sample Output 3

Yes

Sample Input 4

ARC

Sample Output 4

No
B - Avoid Rook Attack

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 200

問題文

8 マス、横 8 マスの 64 マスからなるマス目があります。 上から i 行目 (1\leq i\leq8) 、左から j 列目 (1\leq j\leq8) のマスをマス (i,j) と呼ぶことにします。

それぞれのマスは、空マスであるかコマが置かれているかのどちらかです。 マスの状態は長さ 8 の文字列からなる長さ 8 の列 (S _ 1,S _ 2,S _ 3,\ldots,S _ 8) で表されます。 マス (i,j) (1\leq i\leq8,1\leq j\leq8) は、S _ ij 文字目が . のとき空マスで、# のときコマが置かれています。

あなたは、すでに置かれているどのコマにも取られないように、いずれかの空マスに自分のコマを置きたいです。

マス (i,j) に置かれているコマは、次のどちらかの条件を満たすコマを取ることができます。

  • i 行目のマスに置かれている
  • j 列目のマスに置かれている

たとえば、マス (4,4) に置かれているコマは、以下の図で青く示されたマスに置かれているコマを取ることができます。

あなたがコマを置くことができるマスがいくつあるか求めてください。

制約

  • S _ i., # からなる長さ 8 の文字列 (1\leq i\leq 8)

入力

入力は以下の形式で標準入力から与えられる。

S _ 1
S _ 2
S _ 3
S _ 4
S _ 5
S _ 6
S _ 7
S _ 8

出力

すでに置かれているコマに取られずに自分のコマを置くことができる空マスの個数を出力せよ。


入力例 1

...#....
#.......
.......#
....#...
.#......
........
........
..#.....

出力例 1

4

すでに置かれているコマは、以下の図で青く示されたマスに置かれたコマを取ることができます。

よって、あなたがすでに置かれているコマに取られないように自分のコマを置くことができるマスはマス (6,6), マス (6,7), マス (7,6), マス (7,7)4 マスです。


入力例 2

........
........
........
........
........
........
........
........

出力例 2

64

コマがひとつも置かれていないこともあります。


入力例 3

.#......
..#..#..
....#...
........
..#....#
........
...#....
....#...

出力例 3

4

Score : 200 points

Problem Statement

There is a grid of 64 squares with 8 rows and 8 columns. Let (i,j) denote the square at the i-th row from the top (1\leq i\leq8) and j-th column from the left (1\leq j\leq8).

Each square is either empty or has a piece placed on it. The state of the squares is represented by a sequence (S_1,S_2,S_3,\ldots,S_8) of 8 strings of length 8. Square (i,j) (1\leq i\leq8,1\leq j\leq8) is empty if the j-th character of S_i is ., and has a piece if it is #.

You want to place your piece on an empty square in such a way that it cannot be captured by any of the existing pieces.

A piece placed on square (i,j) can capture pieces that satisfy either of the following conditions:

  • Placed on a square in row i
  • Placed on a square in column j

For example, a piece placed on square (4,4) can capture pieces placed on the squares shown in blue in the following figure:

How many squares can you place your piece on?

Constraints

  • Each S_i is a string of length 8 consisting of . and # (1\leq i\leq 8).

Input

The input is given from Standard Input in the following format:

S_1
S_2
S_3
S_4
S_5
S_6
S_7
S_8

Output

Print the number of empty squares where you can place your piece without it being captured by any existing pieces.


Sample Input 1

...#....
#.......
.......#
....#...
.#......
........
........
..#.....

Sample Output 1

4

The existing pieces can capture pieces placed on the squares shown in blue in the following figure:

Therefore, you can place your piece without it being captured on 4 squares: square (6,6), square (6,7), square (7,6), and square (7,7).


Sample Input 2

........
........
........
........
........
........
........
........

Sample Output 2

64

There may be no pieces on the grid.


Sample Input 3

.#......
..#..#..
....#...
........
..#....#
........
...#....
....#...

Sample Output 3

4
C - Avoid Knight Attack

Time Limit: 4 sec / Memory Limit: 1024 MiB

配点 : 300

問題文

N マス、横 N マスの N ^ 2 マスからなるマス目があります。 上から i 行目 (1\leq i\leq N) 、左から j 列目 (1\leq j\leq N) のマスをマス (i,j) と呼ぶことにします。

それぞれのマスは、空マスであるかコマが置かれているかのどちらかです。 マス目には合計で M 個のコマが置かれており、k 番目 (1\leq k\leq M) のコマはマス (a _ k,b _ k) に置かれています。

あなたは、すでに置かれているどのコマにも取られないように、いずれかの空マスに自分のコマを置きたいです。

マス (i,j) に置かれているコマは、次のどれかの条件を満たすコマを取ることができます。

  • マス (i+2,j+1) に置かれている
  • マス (i+1,j+2) に置かれている
  • マス (i-1,j+2) に置かれている
  • マス (i-2,j+1) に置かれている
  • マス (i-2,j-1) に置かれている
  • マス (i-1,j-2) に置かれている
  • マス (i+1,j-2) に置かれている
  • マス (i+2,j-1) に置かれている

ただし、存在しないマスについての条件は常に満たされないものとします。

たとえば、マス (4,4) に置かれているコマは、以下の図で青く示されたマスに置かれているコマを取ることができます。

あなたがコマを置くことができるマスがいくつあるか求めてください。

制約

  • 1\leq N\leq10 ^ 9
  • 1\leq M\leq2\times10 ^ 5
  • 1\leq a _ k\leq N,1\leq b _ k\leq N\ (1\leq k\leq M)
  • (a _ k,b _ k)\neq(a _ l,b _ l)\ (1\leq k\lt l\leq M)
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

N M
a _ 1 b _ 1
a _ 2 b _ 2
\vdots
a _ M b _ M

出力

すでに置かれているコマに取られずに自分のコマを置くことができる空マスの個数を出力せよ。


入力例 1

8 6
1 4
2 1
3 8
4 5
5 2
8 3

出力例 1

38

すでに置かれているコマは、以下の図で青く示されたマスに置かれたコマを取ることができます。

よって、あなたがすでに置かれているコマに取られないように自分のコマを置くことができるマスは残りの 38 マスです。


入力例 2

1000000000 1
1 1

出力例 2

999999999999999997

10 ^ {18} マスのうち、置くことができないマスはマス (1,1),(2,3),(3,2)3 マスのみです。

答えが 2 ^ {32} 以上になる場合があることに注意してください。


入力例 3

20 10
1 4
7 11
7 15
8 10
11 6
12 5
13 1
15 2
20 10
20 15

出力例 3

338

Score : 300 points

Problem Statement

There is a grid of N^2 squares with N rows and N columns. Let (i,j) denote the square at the i-th row from the top (1\leq i\leq N) and j-th column from the left (1\leq j\leq N).

Each square is either empty or has a piece placed on it. There are M pieces placed on the grid, and the k-th (1\leq k\leq M) piece is placed on square (a_k,b_k).

You want to place your piece on an empty square in such a way that it cannot be captured by any of the existing pieces.

A piece placed on square (i,j) can capture pieces that satisfy any of the following conditions:

  • Placed on square (i+2,j+1)
  • Placed on square (i+1,j+2)
  • Placed on square (i-1,j+2)
  • Placed on square (i-2,j+1)
  • Placed on square (i-2,j-1)
  • Placed on square (i-1,j-2)
  • Placed on square (i+1,j-2)
  • Placed on square (i+2,j-1)

Here, conditions involving non-existent squares are considered to never be satisfied.

For example, a piece placed on square (4,4) can capture pieces placed on the squares shown in blue in the following figure:

How many squares can you place your piece on?

Constraints

  • 1\leq N\leq10^9
  • 1\leq M\leq2\times10^5
  • 1\leq a_k\leq N,1\leq b_k\leq N\ (1\leq k\leq M)
  • (a_k,b_k)\neq(a_l,b_l)\ (1\leq k\lt l\leq M)
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

N M
a_1 b_1
a_2 b_2
\vdots
a_M b_M

Output

Print the number of empty squares where you can place your piece without it being captured by any existing pieces.


Sample Input 1

8 6
1 4
2 1
3 8
4 5
5 2
8 3

Sample Output 1

38

The existing pieces can capture pieces placed on the squares shown in blue in the following figure:

Therefore, you can place your piece on the remaining 38 squares.


Sample Input 2

1000000000 1
1 1

Sample Output 2

999999999999999997

Out of 10^{18} squares, only 3 squares cannot be used: squares (1,1), (2,3), and (3,2).

Note that the answer may be 2^{32} or greater.


Sample Input 3

20 10
1 4
7 11
7 15
8 10
11 6
12 5
13 1
15 2
20 10
20 15

Sample Output 3

338
D - Many Segments 2

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 400

問題文

長さ N の正整数列 L=(L_1,L_2,\ldots,L_N), R=(R_1,R_2,\ldots,R_N) と整数 M が与えられます。

以下の条件を共に満たす整数の組 (l,r) の個数を求めてください。

  • 1\le l \le r \le M
  • 全ての 1\le i\le N に対し区間 [l,r] は区間 [L_i,R_i] を完全には含まない。

制約

  • 1\le N,M\le 2\times 10^5
  • 1\le L_i\le R_i\le M
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

N M
L_1 R_1
L_2 R_2
\vdots
L_N R_N

出力

答えを出力せよ。


入力例 1

2 4
1 2
3 4

出力例 1

5

(l,r)=(1,1),(2,2),(2,3),(3,3),(4,4)5 つが条件を満たします。

例えば (l,r)=(1,3) は条件を満たしません。これは、区間 [1,3] が区間 [1,2] を完全に含んでいるためです。


入力例 2

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

出力例 2

0

条件を満たす整数の組が存在しない場合もあります。


入力例 3

6 20
8 12
14 20
11 13
5 19
4 11
1 6

出力例 3

102

Score : 400 points

Problem Statement

You are given two sequences of positive integers of length N, L=(L_1,L_2,\ldots,L_N) and R=(R_1,R_2,\ldots,R_N), and an integer M.

Find the number of pairs of integers (l,r) that satisfy both of the following conditions:

  • 1\le l \le r \le M
  • For every 1\le i\le N, the interval [l,r] does not completely contain the interval [L_i,R_i].

Constraints

  • 1\le N,M\le 2\times 10^5
  • 1\le L_i\le R_i\le M
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

N M
L_1 R_1
L_2 R_2
\vdots
L_N R_N

Output

Print the answer.


Sample Input 1

2 4
1 2
3 4

Sample Output 1

5

The five pairs (l,r)=(1,1),(2,2),(2,3),(3,3),(4,4) satisfy the conditions.

For example, (l,r)=(1,3) does not satisfy the conditions because the interval [1,3] completely contains the interval [1,2].


Sample Input 2

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

Sample Output 2

0

There may be cases where no pairs of integers satisfy the conditions.


Sample Input 3

6 20
8 12
14 20
11 13
5 19
4 11
1 6

Sample Output 3

102
E - Permute K times 2

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 475

問題文

(1,2,\ldots,N) の並べ替え P=(P _ 1,P _ 2,\ldots,P _ N) が与えられます。

次の操作を K 回行います。

  • i=1,2,\ldots,N に対して同時に P _ iP _ {P _ i} で更新する

すべての操作を終えたあとの P を出力してください。

制約

  • 1\leq N\leq2\times10 ^ 5
  • 1\leq K\leq10 ^ {18}
  • 1\leq P _ i\leq N\ (1\leq i\leq N)
  • P _ i\neq P _ j\ (1\leq i\lt j\leq N)
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

N K
P _ 1 P _ 2 \ldots P _ N

出力

操作をすべて行ったあとの P について、P _ 1,P _ 2,\ldots,P _ N をこの順に空白を区切りとして出力せよ。


入力例 1

6 3
5 6 3 1 2 4

出力例 1

6 1 3 2 4 5

それぞれの操作によって、P は次のように変化します。

  • 1 回目の操作の結果、P=(2,4,3,5,6,1) となります。
  • 2 回目の操作の結果、P=(4,5,3,6,1,2) となります。
  • 3 回目の操作の結果、P=(6,1,3,2,4,5) となります。

よって、6 1 3 2 4 5 を出力してください。


入力例 2

5 1000000000000000000
1 2 3 4 5

出力例 2

1 2 3 4 5

P _ i=i なので、何度操作を行っても P は変化しません。


入力例 3

29 51912426
7 24 8 23 6 1 4 19 11 18 20 9 17 28 22 27 15 2 12 26 10 13 14 25 5 29 3 21 16

出力例 3

18 23 16 24 21 10 2 27 19 7 12 8 13 5 15 26 17 4 3 9 1 22 25 14 28 11 29 6 20

Score : 475 points

Problem Statement

You are given a permutation P=(P_1,P_2,\ldots,P_N) of (1,2,\ldots,N).

The following operation will be performed K times:

  • For i=1,2,\ldots,N, simultaneously update P_i to P_{P_i}.

Print P after all operations.

Constraints

  • 1\leq N\leq2\times10^5
  • 1\leq K\leq10^{18}
  • 1\leq P_i\leq N\ (1\leq i\leq N)
  • P_i\neq P_j\ (1\leq i\lt j\leq N)
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

N K
P_1 P_2 \ldots P_N

Output

For the P after all operations, print P_1,P_2,\ldots,P_N in this order, separated by spaces.


Sample Input 1

6 3
5 6 3 1 2 4

Sample Output 1

6 1 3 2 4 5

With each operation, P changes as follows:

  • After the first operation, P is (2,4,3,5,6,1).
  • After the second operation, P is (4,5,3,6,1,2).
  • After the third operation, P is (6,1,3,2,4,5).

Thus, print 6 1 3 2 4 5.


Sample Input 2

5 1000000000000000000
1 2 3 4 5

Sample Output 2

1 2 3 4 5

Since P_i=i, P does not change no matter how many operations are performed.


Sample Input 3

29 51912426
7 24 8 23 6 1 4 19 11 18 20 9 17 28 22 27 15 2 12 26 10 13 14 25 5 29 3 21 16

Sample Output 3

18 23 16 24 21 10 2 27 19 7 12 8 13 5 15 26 17 4 3 9 1 22 25 14 28 11 29 6 20
F - Avoid Queen Attack

Time Limit: 4 sec / Memory Limit: 1024 MiB

配点 : 550

問題文

N マス、横 N マスの N ^ 2 マスからなるマス目があります。 上から i 行目 (1\leq i\leq N) 、左から j 列目 (1\leq j\leq N) のマスをマス (i,j) と呼ぶことにします。

それぞれのマスは、空マスであるかコマが置かれているかのどちらかです。 マス目には合計で M 個のコマが置かれており、k 番目 (1\leq k\leq M) のコマはマス (a _ k,b _ k) に置かれています。

あなたは、すでに置かれているどのコマにも取られないように、いずれかの空マスに自分のコマを置きたいです。

マス (i,j) に置かれているコマは、次のどれかの条件を満たすコマを取ることができます。

  • i 行目に置かれている
  • j 列目に置かれている
  • i+j=a+b となるようなマス (a,b)\ (1\leq a\leq N,1\leq b\leq N) に置かれている
  • i-j=a-b となるようなマス (a,b)\ (1\leq a\leq N,1\leq b\leq N) に置かれている

たとえば、マス (4,4) に置かれているコマは、以下の図で青く示されたマスに置かれているコマを取ることができます。

あなたがコマを置くことができるマスがいくつあるか求めてください。

制約

  • 1\leq N\leq10 ^ 9
  • 1\leq M\leq10 ^ 3
  • 1\leq a _ k\leq N,1\leq b _ k\leq N\ (1\leq k\leq M)
  • (a _ k,b _ k)\neq(a _ l,b _ l)\ (1\leq k\lt l\leq M)
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

N M
a _ 1 b _ 1
a _ 2 b _ 2
\vdots
a _ M b _ M

出力

すでに置かれているコマに取られずに自分のコマを置くことができる空マスの個数を出力せよ。


入力例 1

8 6
1 4
2 1
3 8
4 5
5 2
8 3

出力例 1

2

すでに置かれているコマは、以下の図で青く示されたマスに置かれたコマを取ることができます。

よって、あなたがすでに置かれているコマに取られないように自分のコマを置くことができるマスはマス (6,6) とマス (7,7)2 つです。


入力例 2

1000000000 1
1 1

出力例 2

999999997000000002

10 ^ {18} マスのうち、置くことができないマスは 1 行目のマス、1 列目のマス、およびマス (1,1), マス (2,2),\ldots, マス (10 ^ 9,10 ^ 9)3\times10 ^ 9-2 マスです。

答えが 2 ^ {32} 以上になる場合があることに注意してください。


入力例 3

20 10
1 4
7 11
7 15
8 10
11 6
12 5
13 1
15 2
20 10
20 15

出力例 3

77

Score : 550 points

Problem Statement

There is a grid of N^2 squares with N rows and N columns. Let (i,j) denote the square at the i-th row from the top (1\leq i\leq N) and j-th column from the left (1\leq j\leq N).

Each square is either empty or has a piece placed on it. There are M pieces placed on the grid, and the k-th (1\leq k\leq M) piece is placed on square (a_k,b_k).

You want to place your piece on an empty square in such a way that it cannot be captured by any of the existing pieces.

A piece placed on square (i,j) can capture pieces that satisfy any of the following conditions:

  • Placed in row i
  • Placed in column j
  • Placed on any square (a,b)\ (1\leq a\leq N,1\leq b\leq N) where i+j=a+b
  • Placed on any square (a,b)\ (1\leq a\leq N,1\leq b\leq N) where i-j=a-b

For example, a piece placed on square (4,4) can capture pieces placed on the squares shown in blue in the following figure:

How many squares can you place your piece on?

Constraints

  • 1\leq N\leq10^9
  • 1\leq M\leq10^3
  • 1\leq a_k\leq N,1\leq b_k\leq N\ (1\leq k\leq M)
  • (a_k,b_k)\neq(a_l,b_l)\ (1\leq k\lt l\leq M)
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

N M
a_1 b_1
a_2 b_2
\vdots
a_M b_M

Output

Print the number of empty squares where you can place your piece without it being captured by any existing pieces.


Sample Input 1

8 6
1 4
2 1
3 8
4 5
5 2
8 3

Sample Output 1

2

The existing pieces can capture pieces placed on the squares shown in blue in the following figure:

Therefore, you can place your piece on only two squares: squares (6,6) and (7,7).


Sample Input 2

1000000000 1
1 1

Sample Output 2

999999997000000002

Out of 10^{18} squares, the squares that cannot be used are: squares in row 1, squares in column 1, and squares (1,1), (2,2), \ldots, (10^9,10^9), totaling 3\times10^9-2 squares.

Note that the answer may be 2^{32} or greater.


Sample Input 3

20 10
1 4
7 11
7 15
8 10
11 6
12 5
13 1
15 2
20 10
20 15

Sample Output 3

77
G - Edit to Match

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 575

問題文

N 個の文字列 S_1,S_2,\ldots,S_N が与えられます。各文字列は英小文字からなります。

k=1,2,\ldots,N に対し以下の問題を解いてください。

T=S_k として、 T に対して以下の 2 種類の操作を好きな順番で好きな回数繰り返すことを考える。

  • コストを 1 払い、 T の末尾の文字を削除する。この操作は T が空文字列でない時に可能である。
  • コストを 1 払い、 T の末尾に好きな英小文字を追加する。

T を空文字列、 S_1,S_2,\ldots,S_{k-1} のいずれかと一致させるために払うコストの総和の最小値を求めよ。

制約

  • 1\le N\le 2\times 10^5
  • S_i は英小文字からなる長さ 1 以上の文字列
  • \displaystyle \sum_{i=1}^N |S_i|\le 2\times 10^5

入力

入力は以下の形式で標準入力から与えられる。

N
S_1
S_2
\vdots
S_N

出力

N 行出力せよ。 i 行目 (1\le i\le N) には k=i に対する答えを出力せよ。


入力例 1

3
snuke
snuki
snuuk

出力例 1

5
2
4

k=1 の場合は末尾の文字を削除する操作を 5 回行うことで空文字列にすることができます。

k=2 の場合は末尾の文字を削除した後に末尾に e を追加することで S_1 と一致させることができます。

k=3 の場合は末尾の文字を 2 回削除した後末尾に k を追加し、末尾に i を追加することで S_2 と一致させることができます。


入力例 2

3
abc
arc
agc

出力例 2

3
3
3

入力例 3

8
at
atatat
attat
aatatatt
attattat
ttatta
tta
tt

出力例 3

2
4
3
8
3
6
3
1

Score : 575 points

Problem Statement

You are given N strings S_1,S_2,\ldots,S_N. Each string consists of lowercase English letters.

For each k=1,2,\ldots,N, solve the following problem.

Let T=S_k and consider performing the following two types of operations any number of times in any order:

  • Pay a cost of 1 to delete the last character of T. This operation is possible when T is not empty.
  • Pay a cost of 1 to add any lowercase English letter to the end of T.

Find the minimum total cost needed to make T either empty or match one of S_1,S_2,\ldots,S_{k-1}.

Constraints

  • 1\le N\le 2\times 10^5
  • Each S_i is a string of length at least 1 consisting of lowercase English letters.
  • \displaystyle \sum_{i=1}^N |S_i|\le 2\times 10^5

Input

The input is given from Standard Input in the following format:

N
S_1
S_2
\vdots
S_N

Output

Print N lines. The i-th line (1\le i\le N) should contain the answer for k=i.


Sample Input 1

3
snuke
snuki
snuuk

Sample Output 1

5
2
4

For k=1, you can make T empty by performing the delete operation five times.

For k=2, you can make T match S_1 by deleting the last character and then adding e to the end.

For k=3, you can make T match S_2 by deleting the last character twice, then adding k to the end, and finally adding i to the end.


Sample Input 2

3
abc
arc
agc

Sample Output 2

3
3
3

Sample Input 3

8
at
atatat
attat
aatatatt
attattat
ttatta
tta
tt

Sample Output 3

2
4
3
8
3
6
3
1