A - Buying Sweets

Time Limit: 2 sec / Memory Limit: 256 MB

配点 : 100

問題文

あなたは、X 円を持ってケーキとドーナツを買いに出かけました。

あなたはまずケーキ屋で 1A 円のケーキを 1 個買いました。 次に、ドーナツ屋で 1B 円のドーナツをできるだけたくさん買いました。

これらの買い物のあと手元に残っている金額は何円ですか。

制約

  • 1 \leq A, B \leq 1,000
  • A + B \leq X \leq 10,000
  • X, A, B は整数である

入力

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

X
A
B

出力

買い物のあとに残った金額を出力せよ。


入力例 1

1234
150
100

出力例 1

84

ケーキを買ったあとに手元に残っている金額は 1234 - 150 = 1084 円です。 この金額でドーナツは 10 個買うことができ、ドーナツの購入後に残る金額は 84 円です。


入力例 2

1000
108
108

出力例 2

28

入力例 3

579
123
456

出力例 3

0

入力例 4

7477
549
593

出力例 4

405

Score : 100 points

Problem Statement

You went shopping to buy cakes and donuts with X yen (the currency of Japan).

First, you bought one cake for A yen at a cake shop. Then, you bought as many donuts as possible for B yen each, at a donut shop.

How much do you have left after shopping?

Constraints

  • 1 \leq A, B \leq 1 000
  • A + B \leq X \leq 10 000
  • X, A and B are integers.

Input

Input is given from Standard Input in the following format:

X
A
B

Output

Print the amount you have left after shopping.


Sample Input 1

1234
150
100

Sample Output 1

84

You have 1234 - 150 = 1084 yen left after buying a cake. With this amount, you can buy 10 donuts, after which you have 84 yen left.


Sample Input 2

1000
108
108

Sample Output 2

28

Sample Input 3

579
123
456

Sample Output 3

0

Sample Input 4

7477
549
593

Sample Output 4

405
B - Coins

Time Limit: 2 sec / Memory Limit: 256 MB

配点 : 200

問題文

あなたは、500 円玉を A 枚、100 円玉を B 枚、50 円玉を C 枚持っています。 これらの硬貨の中から何枚かを選び、合計金額をちょうど X 円にする方法は何通りありますか。

同じ種類の硬貨どうしは区別できません。2 通りの硬貨の選び方は、ある種類の硬貨についてその硬貨を選ぶ枚数が異なるとき区別されます。

制約

  • 0 \leq A, B, C \leq 50
  • A + B + C \geq 1
  • 50 \leq X \leq 20,000
  • A, B, C は整数である
  • X50 の倍数である

入力

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

A
B
C
X

出力

硬貨を選ぶ方法の個数を出力せよ。


入力例 1

2
2
2
100

出力例 1

2

条件を満たす選び方は以下の 2 通りです。

  • 500 円玉を 0 枚、100 円玉を 1 枚、50 円玉を 0 枚選ぶ。
  • 500 円玉を 0 枚、100 円玉を 0 枚、50 円玉を 2 枚選ぶ。

入力例 2

5
1
0
150

出力例 2

0

合計金額をちょうど X 円にする必要があることに注意してください。


入力例 3

30
40
50
6000

出力例 3

213

Score : 200 points

Problem Statement

You have A 500-yen coins, B 100-yen coins and C 50-yen coins (yen is the currency of Japan). In how many ways can we select some of these coins so that they are X yen in total?

Coins of the same kind cannot be distinguished. Two ways to select coins are distinguished when, for some kind of coin, the numbers of that coin are different.

Constraints

  • 0 \leq A, B, C \leq 50
  • A + B + C \geq 1
  • 50 \leq X \leq 20 000
  • A, B and C are integers.
  • X is a multiple of 50.

Input

Input is given from Standard Input in the following format:

A
B
C
X

Output

Print the number of ways to select coins.


Sample Input 1

2
2
2
100

Sample Output 1

2

There are two ways to satisfy the condition:

  • Select zero 500-yen coins, one 100-yen coin and zero 50-yen coins.
  • Select zero 500-yen coins, zero 100-yen coins and two 50-yen coins.

Sample Input 2

5
1
0
150

Sample Output 2

0

Note that the total must be exactly X yen.


Sample Input 3

30
40
50
6000

Sample Output 3

213
C - Candies

Time Limit: 2 sec / Memory Limit: 256 MB

配点 : 300

問題文

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

あなたははじめ、左上のマス (1, 1) にいます。 あなたは、右方向または下方向への移動を繰り返し、右下のマス (2, N) に移動しようとしています。

マス (i, j) には A_{i, j} 個のアメが置かれています。 あなたは移動中に通ったマスに置いてあるアメをすべて回収します。 左上および右下のマスにもアメが置かれており、あなたはこれらのマスに置かれているアメも回収します。

移動方法をうまく選んだとき、最大で何個のアメを回収できるでしょうか。

制約

  • 1 \leq N \leq 100
  • 1 \leq A_{i, j} \leq 100 (1 \leq i \leq 2, 1 \leq j \leq N)

入力

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

N
A_{1, 1} A_{1, 2} ... A_{1, N}
A_{2, 1} A_{2, 2} ... A_{2, N}

出力

回収できるアメの個数の最大値を出力せよ。


入力例 1

5
3 2 2 4 1
1 2 2 2 1

出力例 1

14

以下のように移動するとき、回収できるアメの個数が最大となります。

  • まず右に 3 回移動する。その後下に 1 回移動し、さらに右に 1 回移動する。

入力例 2

4
1 1 1 1
1 1 1 1

出力例 2

5

どのように移動しても回収できるアメの個数は同じになります。


入力例 3

7
3 3 4 5 4 5 3
5 3 4 4 2 3 2

出力例 3

29

入力例 4

1
2
3

出力例 4

5

Score : 300 points

Problem Statement

We have a 2 \times N grid. We will denote the square at the i-th row and j-th column (1 \leq i \leq 2, 1 \leq j \leq N) as (i, j).

You are initially in the top-left square, (1, 1). You will travel to the bottom-right square, (2, N), by repeatedly moving right or down.

The square (i, j) contains A_{i, j} candies. You will collect all the candies you visit during the travel. The top-left and bottom-right squares also contain candies, and you will also collect them.

At most how many candies can you collect when you choose the best way to travel?

Constraints

  • 1 \leq N \leq 100
  • 1 \leq A_{i, j} \leq 100 (1 \leq i \leq 2, 1 \leq j \leq N)

Input

Input is given from Standard Input in the following format:

N
A_{1, 1} A_{1, 2} ... A_{1, N}
A_{2, 1} A_{2, 2} ... A_{2, N}

Output

Print the maximum number of candies that can be collected.


Sample Input 1

5
3 2 2 4 1
1 2 2 2 1

Sample Output 1

14

The number of collected candies will be maximized when you:

  • move right three times, then move down once, then move right once.

Sample Input 2

4
1 1 1 1
1 1 1 1

Sample Output 2

5

You will always collect the same number of candies, regardless of how you travel.


Sample Input 3

7
3 3 4 5 4 5 3
5 3 4 4 2 3 2

Sample Output 3

29

Sample Input 4

1
2
3

Sample Output 4

5
D - People on a Line

Time Limit: 2 sec / Memory Limit: 256 MB

配点 : 400

問題文

x 軸上に N 人の人が立っています。 人 i の位置を x_i とします。 任意の i に対して、x_i0 以上 10^9 以下の整数です。 同じ位置に複数の人が立っていることもありえます。

これらの人の位置に関する情報が M 個与えられます。 このうち i 個めの情報は (L_i, R_i, D_i) という形をしています。 この情報は、人 R_i は人 L_i よりも距離 D_i だけ右にいること、 すなわち、x_{R_i} - x_{L_i} = D_i が成り立つことを表します。

これら M 個の情報のうちのいくつかに誤りがある可能性があることがわかりました。 与えられる M 個すべての情報と矛盾しないような値の組 (x_1, x_2, ..., x_N) が存在するかどうか判定してください。

制約

  • 1 \leq N \leq 100,000
  • 0 \leq M \leq 200,000
  • 1 \leq L_i, R_i \leq N (1 \leq i \leq M)
  • 0 \leq D_i \leq 10,000 (1 \leq i \leq M)
  • L_i \neq R_i (1 \leq i \leq M)
  • i \neq j のとき、(L_i, R_i) \neq (L_j, R_j) かつ (L_i, R_i) \neq (R_j, L_j)
  • D_i は整数である

入力

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

N M
L_1 R_1 D_1
L_2 R_2 D_2
:
L_M R_M D_M

出力

与えられるすべての情報と矛盾しない値の組 (x_1, x_2, ..., x_N) が存在するときは Yes と、存在しないときは No と出力せよ。


入力例 1

3 3
1 2 1
2 3 1
1 3 2

出力例 1

Yes

値の組 (x_1, x_2, x_3) として、(0, 1, 2)(101, 102, 103) などが考えられます。


入力例 2

3 3
1 2 1
2 3 1
1 3 5

出力例 2

No

はじめの 2 つの情報が正しいとすると、x_3 - x_1 = 2 が成り立つことが分かります。 これは最後の情報に矛盾します。


入力例 3

4 3
2 1 1
2 3 5
3 4 2

出力例 3

Yes

入力例 4

10 3
8 7 100
7 9 100
9 8 100

出力例 4

No

入力例 5

100 0

出力例 5

Yes

Score : 400 points

Problem Statement

There are N people standing on the x-axis. Let the coordinate of Person i be x_i. For every i, x_i is an integer between 0 and 10^9 (inclusive). It is possible that more than one person is standing at the same coordinate.

You will given M pieces of information regarding the positions of these people. The i-th piece of information has the form (L_i, R_i, D_i). This means that Person R_i is to the right of Person L_i by D_i units of distance, that is, x_{R_i} - x_{L_i} = D_i holds.

It turns out that some of these M pieces of information may be incorrect. Determine if there exists a set of values (x_1, x_2, ..., x_N) that is consistent with the given pieces of information.

Constraints

  • 1 \leq N \leq 100 000
  • 0 \leq M \leq 200 000
  • 1 \leq L_i, R_i \leq N (1 \leq i \leq M)
  • 0 \leq D_i \leq 10 000 (1 \leq i \leq M)
  • L_i \neq R_i (1 \leq i \leq M)
  • If i \neq j, then (L_i, R_i) \neq (L_j, R_j) and (L_i, R_i) \neq (R_j, L_j).
  • D_i are integers.

Input

Input is given from Standard Input in the following format:

N M
L_1 R_1 D_1
L_2 R_2 D_2
:
L_M R_M D_M

Output

If there exists a set of values (x_1, x_2, ..., x_N) that is consistent with all given pieces of information, print Yes; if it does not exist, print No.


Sample Input 1

3 3
1 2 1
2 3 1
1 3 2

Sample Output 1

Yes

Some possible sets of values (x_1, x_2, x_3) are (0, 1, 2) and (101, 102, 103).


Sample Input 2

3 3
1 2 1
2 3 1
1 3 5

Sample Output 2

No

If the first two pieces of information are correct, x_3 - x_1 = 2 holds, which is contradictory to the last piece of information.


Sample Input 3

4 3
2 1 1
2 3 5
3 4 2

Sample Output 3

Yes

Sample Input 4

10 3
8 7 100
7 9 100
9 8 100

Sample Output 4

No

Sample Input 5

100 0

Sample Output 5

Yes