C - Minimization

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 300

問題文

長さ N の数列 A_1, A_2, ..., A_N があります.最初,この数列の要素は 1, 2, ..., N を並び替えたものになっています.

スヌケ君は,この数列に対して次の操作を行うことができます.

  • 数列のうち,連続した K 個の要素を選ぶ.その後,選んだ要素それぞれの値を,選んだ要素の中の最小値で置き換える.

スヌケ君は,上の操作を何回か繰り返すことで,この数列の要素をすべて等しくしたいです. 必要な操作の回数の最小値を求めてください. この問題の制約の下,このようなことは必ず可能であることが証明できます.

制約

  • 2 \leq K \leq N \leq 100000
  • A_1, A_2, ..., A_N1, 2, ..., N の並び替え

入力

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

N K
A_1 A_2 ... A_N

出力

必要な操作の回数の最小値を出力せよ.


入力例 1

4 3
2 3 1 4

出力例 1

2

例えば,次のようにするとよいです:

  • 1 回目の操作では,1, 2, 3 番目の要素を選ぶ.すると,数列 A1, 1, 1, 4 になる.
  • 2 回目の操作では,2, 3, 4 番目の要素を選ぶ.すると,数列 A1, 1, 1, 1 になる.

入力例 2

3 3
1 2 3

出力例 2

1

入力例 3

8 3
7 3 1 8 4 6 2 5

出力例 3

4

Score : 300 points

Problem Statement

There is a sequence of length N: A_1, A_2, ..., A_N. Initially, this sequence is a permutation of 1, 2, ..., N.

On this sequence, Snuke can perform the following operation:

  • Choose K consecutive elements in the sequence. Then, replace the value of each chosen element with the minimum value among the chosen elements.

Snuke would like to make all the elements in this sequence equal by repeating the operation above some number of times. Find the minimum number of operations required. It can be proved that, Under the constraints of this problem, this objective is always achievable.

Constraints

  • 2 \leq K \leq N \leq 100000
  • A_1, A_2, ..., A_N is a permutation of 1, 2, ..., N.

Input

Input is given from Standard Input in the following format:

N K
A_1 A_2 ... A_N

Output

Print the minimum number of operations required.


Sample Input 1

4 3
2 3 1 4

Sample Output 1

2

One optimal strategy is as follows:

  • In the first operation, choose the first, second and third elements. The sequence A becomes 1, 1, 1, 4.

  • In the second operation, choose the second, third and fourth elements. The sequence A becomes 1, 1, 1, 1.


Sample Input 2

3 3
1 2 3

Sample Output 2

1

Sample Input 3

8 3
7 3 1 8 4 6 2 5

Sample Output 3

4
D - Snuke Numbers

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 500

問題文

整数 n に対して,n を十進法で表したときの各桁の和を S(n) で表すことにします. たとえば,S(123) = 1 + 2 + 3 = 6 です.

正の整数 n であって,m > n であるような任意の正の整数 m に対して \frac{n}{S(n)} \leq \frac{m}{S(m)} が成り立つようなものを, すぬけ数 と呼ぶことにします.

整数 K が与えられたとき,すぬけ数を小さいほうから K 個列挙してください.

制約

  • 1 \leq K
  • K 番目のすぬけ数は 10^{15} 以下

入力

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

K

出力

K 行出力せよ.i 行目には,i 番目に小さいすぬけ数を出力せよ.


入力例 1

10

出力例 1

1
2
3
4
5
6
7
8
9
19

Score : 500 points

Problem Statement

Let S(n) denote the sum of the digits in the decimal notation of n. For example, S(123) = 1 + 2 + 3 = 6.

We will call an integer n a Snuke number when, for all positive integers m such that m > n, \frac{n}{S(n)} \leq \frac{m}{S(m)} holds.

Given an integer K, list the K smallest Snuke numbers.

Constraints

  • 1 \leq K
  • The K-th smallest Snuke number is not greater than 10^{15}.

Input

Input is given from Standard Input in the following format:

K

Output

Print K lines. The i-th line should contain the i-th smallest Snuke number.


Sample Input 1

10

Sample Output 1

1
2
3
4
5
6
7
8
9
19
E - Independence

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 700

問題文

AtCoder 連邦の高橋州には,N 個の都市があります.都市は 1, 2, ..., N と番号付けされています. これらの都市の間は,M 本の両方向に行き来可能な道で結ばれています. i 番目の道は都市 A_i と都市 B_i の間を結んでいます. どの道も,異なる都市間を結んでいます. また,どの都市間にも,それらを直接結ぶ道は高々 1 本しか存在しません.

ある時,高橋州は高州と橋州の 2 つの州に分かれることになりました. 高橋州の各都市は,分離後は高州もしくは橋州のいずれか片方に属することになります. ここで,すべての都市が高州,または橋州の一方のみに属してしまっても構わないことにします. このとき,次の条件を満たすようにしたいです:

  • 高州,橋州のいずれにおいても,同じ州内では,どの 2 つの都市も 直接 道で結ばれている.

両端の都市が同じ州内に属しているような道の本数として考えられるもののうち,最小のものを求めてください. ただし,条件を満たすように都市を高州,橋州に分けることが不可能なら,-1 を出力してください.

制約

  • 2 \leq N \leq 700
  • 0 \leq M \leq N(N-1)/2
  • 1 \leq A_i \leq N
  • 1 \leq B_i \leq N
  • A_i \neq B_i
  • i \neq j のとき,A_i \neq A_j または B_i \neq B_j の少なくとも片方が成立
  • i \neq j のとき,A_i \neq B_j または B_i \neq A_j の少なくとも片方が成立

入力

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

N M
A_1 B_1
A_2 B_2
:
A_M B_M

出力

答えを出力せよ.


入力例 1

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

出力例 1

4

例えば,高州に都市 1, 2 を,橋州に都市 3, 4, 5 を割り当てると,条件を満たします. このとき,両端の都市が同じ州内に属しているような道の本数は 4 になります.


入力例 2

5 1
1 2

出力例 2

-1

この例では,どのように都市を割り当てても,条件を満たすことができません.


入力例 3

4 3
1 2
1 3
2 3

出力例 3

3

入力例 4

10 39
7 2
7 1
5 6
5 8
9 10
2 8
8 7
3 10
10 1
8 10
2 3
7 4
3 9
4 10
3 4
6 1
6 7
9 5
9 7
6 9
9 4
4 6
7 5
8 3
2 5
9 2
10 7
8 6
8 9
7 3
5 3
4 5
6 3
2 10
5 10
4 2
6 2
8 4
10 6

出力例 4

21

Score : 700 points

Problem Statement

In the State of Takahashi in AtCoderian Federation, there are N cities, numbered 1, 2, ..., N. M bidirectional roads connect these cities. The i-th road connects City A_i and City B_i. Every road connects two distinct cities. Also, for any two cities, there is at most one road that directly connects them.

One day, it was decided that the State of Takahashi would be divided into two states, Taka and Hashi. After the division, each city in Takahashi would belong to either Taka or Hashi. It is acceptable for all the cities to belong Taka, or for all the cities to belong Hashi. Here, the following condition should be satisfied:

  • Any two cities in the same state, Taka or Hashi, are directly connected by a road.

Find the minimum possible number of roads whose endpoint cities belong to the same state. If it is impossible to divide the cities into Taka and Hashi so that the condition is satisfied, print -1.

Constraints

  • 2 \leq N \leq 700
  • 0 \leq M \leq N(N-1)/2
  • 1 \leq A_i \leq N
  • 1 \leq B_i \leq N
  • A_i \neq B_i
  • If i \neq j, at least one of the following holds: A_i \neq A_j and B_i \neq B_j.
  • If i \neq j, at least one of the following holds: A_i \neq B_j and B_i \neq A_j.

Input

Input is given from Standard Input in the following format:

N M
A_1 B_1
A_2 B_2
:
A_M B_M

Output

Print the answer.


Sample Input 1

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

Sample Output 1

4

For example, if the cities 1, 2 belong to Taka and the cities 3, 4, 5 belong to Hashi, the condition is satisfied. Here, the number of roads whose endpoint cities belong to the same state, is 4.


Sample Input 2

5 1
1 2

Sample Output 2

-1

In this sample, the condition cannot be satisfied regardless of which cities belong to each state.


Sample Input 3

4 3
1 2
1 3
2 3

Sample Output 3

3

Sample Input 4

10 39
7 2
7 1
5 6
5 8
9 10
2 8
8 7
3 10
10 1
8 10
2 3
7 4
3 9
4 10
3 4
6 1
6 7
9 5
9 7
6 9
9 4
4 6
7 5
8 3
2 5
9 2
10 7
8 6
8 9
7 3
5 3
4 5
6 3
2 10
5 10
4 2
6 2
8 4
10 6

Sample Output 4

21
F - Eating Symbols Hard

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 1200

問題文

高橋君は,いつも頭の中に,長さ 2 \times 10^9 + 1 の整数列 A = (A_{-10^9}, A_{-10^9 + 1}, ..., A_{10^9 - 1}, A_{10^9}) と,整数 P を思い浮かべています.

はじめ,高橋君が思い浮かべている整数列 A のすべての要素は 0 です. また,整数 P の値は 0 です.

高橋君は,+, -, >, < の記号を食べると,それぞれ次のように思い浮かべている整数列 A,整数 P が変化します:

  • + を食べた場合,A_P の値が 1 大きくなる.
  • - を食べた場合,A_P の値が 1 小さくなる.
  • > を食べた場合,P の値が 1 大きくなる.
  • < を食べた場合,P の値が 1 小さくなる.

高橋君は,長さ N の文字列 S を持っています.S の各文字は +, -, >, < の記号のいずれかです. 高橋君は,1 \leq i \leq j \leq N なる整数の組 (i, j) を選んで,Si, i+1, ..., j 文字目の記号をこの順に食べました. 高橋君が記号を食べ終わった後,高橋君が思い浮かべている整数列 A は,高橋君が S のすべての記号を 1 文字目から順に食べた場合と等しくなったといいます. このような (i, j) として考えられるものは何通りあるか求めてください.

制約

  • 1 \leq N \leq 250000
  • |S| = N
  • S の各文字は +, -, >, < のいずれか

入力

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

N
S

出力

答えを出力せよ.


入力例 1

5
+>+<-

出力例 1

3

高橋君が S のすべての記号を食べた場合,A_1 = 1 で,A の他の要素はすべて 0 になります. A がこれと等しくなるような (i, j) は次の通りです:

  • (1, 5)
  • (2, 3)
  • (2, 4)

入力例 2

5
+>+-<

出力例 2

5

高橋君が S のすべての記号を食べた場合と P が異なっていてもかまわないことに注意してください.


入力例 3

48
-+><<><><><>>>+-<<>->>><<><<-+<>><+<<>+><-+->><<

出力例 3

475

Score : 1200 points

Problem Statement

In Takahashi's mind, there is always an integer sequence of length 2 \times 10^9 + 1: A = (A_{-10^9}, A_{-10^9 + 1}, ..., A_{10^9 - 1}, A_{10^9}) and an integer P.

Initially, all the elements in the sequence A in Takahashi's mind are 0, and the value of the integer P is 0.

When Takahashi eats symbols +, -, > and <, the sequence A and the integer P will change as follows:

  • When he eats +, the value of A_P increases by 1;
  • When he eats -, the value of A_P decreases by 1;
  • When he eats >, the value of P increases by 1;
  • When he eats <, the value of P decreases by 1.

Takahashi has a string S of length N. Each character in S is one of the symbols +, -, > and <. He chose a pair of integers (i, j) such that 1 \leq i \leq j \leq N and ate the symbols that are the i-th, (i+1)-th, ..., j-th characters in S, in this order. We heard that, after he finished eating, the sequence A became the same as if he had eaten all the symbols in S from first to last. How many such possible pairs (i, j) are there?

Constraints

  • 1 \leq N \leq 250000
  • |S| = N
  • Each character in S is +, -, > or <.

Input

Input is given from Standard Input in the following format:

N
S

Output

Print the answer.


Sample Input 1

5
+>+<-

Sample Output 1

3

If Takahashi eats all the symbols in S, A_1 = 1 and all other elements would be 0. The pairs (i, j) that leads to the same sequence A are as follows:

  • (1, 5)
  • (2, 3)
  • (2, 4)

Sample Input 2

5
+>+-<

Sample Output 2

5

Note that the value of P may be different from the value when Takahashi eats all the symbols in S.


Sample Input 3

48
-+><<><><><>>>+-<<>->>><<><<-+<>><+<<>+><-+->><<

Sample Output 3

475