Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 100 点
問題文
AtCoder で定期的に開催されている、国際的な権威があるコンテストである AtCoder Grand Contest (以下、AGC) は今までに 54 回開催されてきました。
みなさんがちょうど参加している 230 回目の ABC である ABC230
と同様に、 当初は N 回目の AGC のコンテスト名には N を 3 桁になるようにゼロ埋めした数が割り振られていました。( 1 回目の AGC は AGC001
, 2 回目の AGC は AGC002
, ...)
ところが、最新の 54 回目の AGC のコンテスト名は AGC055
で、回数より 1 大きい数が割り振られています。これは、AGC042
が社会情勢の影響で中止されて欠番となったため、42 回目以降に開催されたコンテストでは開催された回数より 1 大きい数が割り振られているからです。(入出力例にある説明も参考にしてください。)
さて、ここで問題です。整数 N が与えられるので、N 回目に開催された AGC のコンテスト名を AGCXXX
の形式で出力してください。ここで、XXX
にはゼロ埋めがなされた 3 桁の数が入ります。
制約
- 1 \leq N \leq 54
- N は整数である。
入力
入力は以下の形式で標準入力から与えられる。
N
出力
N 回目に開催された AGC のコンテスト名を所定の形式で出力せよ。
入力例 1
42
出力例 1
AGC043
問題文にある通り、 42 回目以降の AGC には回数より 1 大きい数が割り振られています。
よって 42 回目の AGC のコンテスト名は AGC043
になります。
入力例 2
19
出力例 2
AGC019
41 回目以前の AGC は回数と同じ数が割り振られています。
よって AGC019
が答えとなります。
入力例 3
1
出力例 3
AGC001
問題文にある通り、 1 回目の AGC のコンテスト名は AGC001
です。
数が 3 桁になるようにゼロ埋めを行う必要があるのに注意してください。
入力例 4
50
出力例 4
AGC051
Score : 100 points
Problem Statement
AtCoder Grand Contest (AGC), a regularly held contest with a world authority, has been held 54 times.
Just like the 230-th ABC ― the one you are in now ― is called ABC230
, the N-th AGC is initially named with a zero-padded 3-digit number N. (The 1-st AGC is AGC001
, the 2-nd AGC is AGC002
, ...)
However, the latest 54-th AGC is called AGC055
, where the number is one greater than 54. Because AGC042
is canceled and missing due to the social situation, the 42-th and subsequent contests are assigned numbers that are one greater than the numbers of contests held. (See also the explanations at Sample Inputs and Outputs.)
Here is the problem: given an integer N, print the name of the N-th AGC in the format AGCXXX
, where XXX
is the zero-padded 3-digit number.
Constraints
- 1 \leq N \leq 54
- N is an integer.
Input
Input is given from Standard Input in the following format:
N
Output
Print the name of the N-th AGC in the specified format.
Sample Input 1
42
Sample Output 1
AGC043
As explained in Problem Statement, the 42-th and subsequent AGCs are assigned numbers that are one greater than the numbers of contests.
Thus, the 42-th AGC is named AGC043
.
Sample Input 2
19
Sample Output 2
AGC019
The 41-th and preceding AGCs are assigned numbers that are equal to the numbers of contests.
Thus, the answer is AGC019
.
Sample Input 3
1
Sample Output 3
AGC001
As mentioned in Problem Statement, the 1-st AGC is named AGC001
.
Be sure to pad the number with zeros into a 3-digit number.
Sample Input 4
50
Sample Output 4
AGC051
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 200 点
問題文
文字列 S が文字列 T の部分文字列であるとは、次の条件を満たすような整数 i, j (1 \leq i \leq j \leq |T|) が存在することを言います。
- T の i 文字目から j 文字目までを順番を変えずに抜き出してできる文字列が S と一致する。
文字列 T を oxx
を 10^5 個結合した文字列として定めます。
文字列 S が与えられるので、 S が T の部分文字列である場合は Yes
を、そうでない場合は No
を出力してください。
制約
- S は
o
とx
のみからなる文字列である。 - S の長さは 1 以上 10 以下である。
入力
入力は以下の形式で標準入力から与えられる。
S
出力
S が条件を満たす場合は Yes
を、そうでない場合は No
を出力せよ。
入力例 1
xoxxoxxo
出力例 1
Yes
T のはじめの方を抜き出すと oxxoxxoxxoxx
... となっています。
T の 3 文字目から 10 文字目までを抜き出した文字列は S と一致するので、 S は T の部分文字列です。よって Yes
を出力します。
入力例 2
xxoxxoxo
出力例 2
No
T から文字列をどのように抜き出しても S と一致しないので、S は T の部分文字列でありません。よって No
を出力します。
入力例 3
ox
出力例 3
Yes
Score : 200 points
Problem Statement
A string S is said to be a substring of a string T when there is a pair of integers i and j (1 \leq i \leq j \leq |T|) that satisfy the following condition.
- The extraction of the i-th through j-th characters of T without changing the order equals S.
Let T be the concatenation of 10^5 copies of oxx
.
Given a string S, print Yes
if S is a substring of T, and No
otherwise.
Constraints
- S is a string consisting of
o
andx
. - The length of S is between 1 and 10 (inclusive).
Input
Input is given from Standard Input in the following format:
S
Output
If S satisfies the condition, print Yes
; otherwise, print No
.
Sample Input 1
xoxxoxxo
Sample Output 1
Yes
T begins like this: oxxoxxoxxoxx
...
Since the extraction of 3-rd through 10-th characters of T equals S, S is a substring of T, so Yes
should be printed.
Sample Input 2
xxoxxoxo
Sample Output 2
No
Since there is no way to extract from T a string that equals S, S is not a substring of T, so No
should be printed.
Sample Input 3
ox
Sample Output 3
Yes
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 300 点
問題文
上下左右に広がる N\times N のマス目があり、最初全てのマスは白く塗られています。このマス目の上から i 行目、左から j 列目のマスを (i,j) で表します。
高橋君は 1 以上 N 以下の整数 A, B を持っており、次のような操作を行います。
- \max(1-A,1-B)\leq k\leq \min(N-A,N-B) をみたす全ての整数 k について、(A+k,B+k) を黒く塗る。
- \max(1-A,B-N)\leq k\leq \min(N-A,B-1) をみたす全ての整数 k について、(A+k,B-k) を黒く塗る。
この操作を行った後のマス目について、P\leq i\leq Q かつ R\leq j\leq S をみたす各マス (i,j) がそれぞれ何色で塗られているか求めてください。
制約
- 1 \leq N \leq 10^{18}
- 1 \leq A \leq N
- 1 \leq B \leq N
- 1 \leq P \leq Q \leq N
- 1 \leq R \leq S \leq N
- (Q-P+1)\times(S-R+1)\leq 3\times 10^5
- 入力は全て整数である。
入力
入力は以下の形式で標準入力から与えられる。
N A B P Q R S
出力
Q-P+1 行出力せよ。
各行は #
と .
のみからなる長さ S-R+1 の文字列であり、
i 行目の文字列の j 番目の文字が
#
であることは (P+i-1,R+j-1) が黒く塗られていることを、
.
であることは (P+i-1,R+j-1) が白く塗られていることをさす。
入力例 1
5 3 2 1 5 1 5
出力例 1
...#. #.#.. .#... #.#.. ...#.
1 つめの操作で (2,1), (3,2), (4,3), (5,4) の 4 マスが、
2 つめの操作で (4,1), (3,2), (2,3), (1,4) の 4 マスが黒く塗られます。
よって、P=1, Q=5, R=1, S=5 より、上のように出力します。
入力例 2
5 3 3 4 5 2 5
出力例 2
#.#. ...#
操作によって、
(1,1), (1,5), (2,2), (2,4), (3,3), (4,2), (4,4), (5,1), (5,5) の 9 マスが
黒く塗られます。
P=4, Q=5, R=2, S=5 より、上のように出力します。
入力例 3
1000000000000000000 999999999999999999 999999999999999999 999999999999999998 1000000000000000000 999999999999999998 1000000000000000000
出力例 3
#.# .#. #.#
入力が 32 bit 整数型に収まらないことがあることに注意してください。
Score : 300 points
Problem Statement
There is an N\times N grid with horizontal rows and vertical columns, where all squares are initially painted white. Let (i,j) denote the square at the i-th row and j-th column.
Takahashi has integers A and B, which are between 1 and N (inclusive). He will do the following operations.
- For every integer k such that \max(1-A,1-B)\leq k\leq \min(N-A,N-B), paint (A+k,B+k) black.
- For every integer k such that \max(1-A,B-N)\leq k\leq \min(N-A,B-1), paint (A+k,B-k) black.
In the grid after these operations, find the color of each square (i,j) such that P\leq i\leq Q and R\leq j\leq S.
Constraints
- 1 \leq N \leq 10^{18}
- 1 \leq A \leq N
- 1 \leq B \leq N
- 1 \leq P \leq Q \leq N
- 1 \leq R \leq S \leq N
- (Q-P+1)\times(S-R+1)\leq 3\times 10^5
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N A B P Q R S
Output
Print Q-P+1 lines.
Each line should contain a string of length S-R+1 consisting of #
and .
.
The j-th character of the string in the i-th line should be #
to represent that (P+i-1, R+j-1) is painted black, and .
to represent that (P+i-1, R+j-1) is white.
Sample Input 1
5 3 2 1 5 1 5
Sample Output 1
...#. #.#.. .#... #.#.. ...#.
The first operation paints the four squares (2,1), (3,2), (4,3), (5,4) black, and the second paints the four squares (4,1), (3,2), (2,3), (1,4) black.
Thus, the above output should be printed, since P=1, Q=5, R=1, S=5.
Sample Input 2
5 3 3 4 5 2 5
Sample Output 2
#.#. ...#
The operations paint the nine squares (1,1), (1,5), (2,2), (2,4), (3,3), (4,2), (4,4), (5,1), (5,5).
Thus, the above output should be printed, since P=4, Q=5, R=2, S=5.
Sample Input 3
1000000000000000000 999999999999999999 999999999999999999 999999999999999998 1000000000000000000 999999999999999998 1000000000000000000
Sample Output 3
#.# .#. #.#
Note that the input may not fit into a 32-bit integer type.
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 400 点
問題文
N 行 10^9 列の格子状の区画に区切られた街に N 枚の壁があり、1 から N までの番号が割り振られています。
壁 i は上から i 行目、左から L_i 列目から R_i 列目の範囲にあります。(入出力例 1 の図も参考にしてください。)
高橋君は N 枚の壁をすべて破壊することにしました。
超人的な腕力を持つ高橋君は、1 回のパンチで連続する D 列にまとめてダメージを与えることができます。
- より厳密に言い換えると、1 以上 10^9 - D + 1 以下の 整数 x を選んで、x 列目から x + D - 1 列目に (一部でも) 存在するすべての破壊されていない壁にパンチによるダメージを与えることができます。
壁は一部分でもダメージを受けると、パンチの衝撃波により全体が木っ端みじんに破壊されてしまいます。
(入出力例 1 の説明も参考にしてください。)
高橋君がすべての壁を破壊するには、少なくとも何回のパンチを放つ必要がありますか?
制約
- 1 \leq N \leq 2 \times 10^5
- 1 \leq D \leq 10^9
- 1 \leq L_i \leq R_i \leq 10^9
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
N D L_1 R_1 L_2 R_2 \vdots L_N R_N
出力
すべての壁を破壊するのに必要なパンチの最少回数を出力せよ。
入力例 1
3 3 1 2 4 7 5 9
出力例 1
2
入力例 1 に対応する壁の配置を図示したものが下図です。
たとえば次のようにパンチを放つことで、 2 回のパンチですべての壁を破壊することができます。(以下の説明では、a 列目から b 列目までの範囲を \lbrack a, b \rbrack と表記します。)
- まず、 \lbrack 2, 4 \rbrack にパンチを放つ。 \lbrack 2, 4 \rbrack に存在する壁である壁 1 と壁 2 はダメージを受け、破壊される。
- 次に \lbrack 5, 7\rbrack にパンチを放つ。\lbrack 5, 7\rbrack に存在する壁 3 はダメージを受け、破壊される。
また、次の方法でもすべての壁を 2 回のパンチで破壊することができます。
- まず、\lbrack 7, 9 \rbrack にパンチを放ち、壁 2 と壁 3 を破壊する。
- 次に、\lbrack 1, 3 \rbrack にパンチを放ち、壁 1 を破壊する。
入力例 2
3 3 1 2 4 7 4 9
出力例 2
1
入出力例 1 と比べると、壁 3 の範囲が \lbrack 5, 9 \rbrack から \lbrack 4, 9 \rbrack に変わりました。
この場合は \lbrack 2, 4 \rbrack にパンチを放つことで 1 回ですべての壁を破壊できます。
入力例 3
5 2 1 100 1 1000000000 101 1000 9982 44353 1000000000 1000000000
出力例 3
3
Score : 400 points
Problem Statement
In a town divided into a grid with N rows and 10^9 columns, there are N walls, numbered 1 to N.
Wall i ranges from the L_i-th column to the R_i-th column from the left in the i-th row from the top. (See also the figure at Sample Input and Output 1.)
Takahashi has decided to destroy all N walls.
With his superhuman strength, his one punch can damage consecutive D columns at once.
- More formally, he can choose an integer x between 1 and 10^9 - D + 1 (inclusive) to damage all walls that exist (or partly exist) in the x-th through (x + D - 1)-th columns and are not yet destroyed.
When a part of a wall is damaged, that whole wall will be destroyed by the impact of the punch.
(See also the figure at Sample Input and Output 1.)
At least how many times does Takahashi need to punch to destroy all walls?
Constraints
- 1 \leq N \leq 2 \times 10^5
- 1 \leq D \leq 10^9
- 1 \leq L_i \leq R_i \leq 10^9
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N D L_1 R_1 L_2 R_2 \vdots L_N R_N
Output
Print the minimum number of punches needed to destroy all walls.
Sample Input 1
3 3 1 2 4 7 5 9
Sample Output 1
2
The figure below describes the arrangements of walls in Sample Input 1.
He can destroy all walls with two punches, such as the following. (Below, \lbrack a, b \rbrack denotes the range from the a-th through b-th columns.)
- First, punch \lbrack 2, 4 \rbrack. The walls existing in \lbrack 2, 4 \rbrack ― Walls 1 and 2 ― are damaged and destroyed.
- Second, punch \lbrack 5, 7 \rbrack. The wall existing in \lbrack 5, 7 \rbrack ― Wall 3 ― is damaged and destroyed.
It is also possible to destroy all walls with two punches in this way:
- First, punch \lbrack 7, 9 \rbrack to destroy Walls 2 and 3.
- Second, punch \lbrack 1, 3 \rbrack to destroy Wall 1.
Sample Input 2
3 3 1 2 4 7 4 9
Sample Output 2
1
The difference from Sample Input/Output 1 is that Wall 3 now covers \lbrack 4, 9 \rbrack, not \lbrack 5, 9 \rbrack.
In this case, he can punch \lbrack 2, 4 \rbrack to destroy all walls with one punch.
Sample Input 3
5 2 1 100 1 1000000000 101 1000 9982 44353 1000000000 1000000000
Sample Output 3
3
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 500 点
問題文
正の整数 N が与えられます。 \displaystyle\sum_{i=1}^N \left[ \frac{N}{i} \right] の値を求めてください。
ただし、実数 x に対して [x] で x 以下の最大の整数を表します。
制約
- 1 \leq N \leq 10^{12}
- N は整数である。
入力
入力は以下の形式で標準入力から与えられる。
N
出力
答えを出力せよ。
入力例 1
3
出力例 1
5
\left[ \frac{3}{1} \right]+\left[ \frac{3}{2} \right]+\left[ \frac{3}{3} \right]=3+1+1=5 です。
入力例 2
10000000000
出力例 2
231802823220
入力や出力が 32 bit 整数型に収まらないことがあることに注意してください。
Score : 500 points
Problem Statement
Given is a positive integer N. Find the value \displaystyle\sum_{i=1}^N \left[ \frac{N}{i} \right].
Here, for a real number x, [x] denotes the largest integer not exceeding x.
Constraints
- 1 \leq N \leq 10^{12}
- N is an integer.
Input
Input is given from Standard Input in the following format:
N
Output
Print the answer.
Sample Input 1
3
Sample Output 1
5
We have \left[ \frac{3}{1} \right]+\left[ \frac{3}{2} \right]+\left[ \frac{3}{3} \right]=3+1+1=5.
Sample Input 2
10000000000
Sample Output 2
231802823220
Note that the input and output may not fit into a 32-bit integer type.
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 500 点
問題文
長さ N の数列 A が与えられます。 数列の長さが 2 以上のとき、隣接する二つの値を選び、それらを削除し、それらが元にあった位置にそれらの和を挿入するという操作を好きなだけ行えます。 0 回以上の操作の後の数列として考えられるものは何通りあるか求め、998244353 で割ったあまりを出力してください。
制約
- 1 \leq N \leq 2\times 10^5
- |A_i| \leq 10^9
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N A_1 A_2 \cdots A_N
出力
答えを出力せよ。
入力例 1
3 1 -1 1
出力例 1
4
0 回以上の操作の後の数列として考えられるのは以下の 4 通りです。
- {1,-1,1}
- {1,0}
- {0,1}
- {1}
入力例 2
10 377914575 -275478149 0 -444175904 719654053 -254224494 -123690081 377914575 -254224494 -21253655
出力例 2
321
Score : 500 points
Problem Statement
Given is a sequence A of length N. You can do this operation any number of times: when the length of the sequence is at least 2, choose two adjacent values, delete them, and insert their sum where they were. How many sequences can result from zero or more operations? Find the count modulo 998244353.
Constraints
- 1 \leq N \leq 2\times 10^5
- |A_i| \leq 10^9
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N A_1 A_2 \cdots A_N
Output
Print the answer.
Sample Input 1
3 1 -1 1
Sample Output 1
4
The following four sequences can result from zero or more operations.
- {1,-1,1}
- {1,0}
- {0,1}
- {1}
Sample Input 2
10 377914575 -275478149 0 -444175904 719654053 -254224494 -123690081 377914575 -254224494 -21253655
Sample Output 2
321
Time Limit: 5 sec / Memory Limit: 1024 MB
配点 : 600 点
問題文
1 以上 N 以下の整数の並び替え P=(P_1,P_2,\ldots,P_N) が与えられます。
1\leq i\leq j\leq N をみたす整数の組 (i,j) であって、GCD(i,j)\neq 1 かつ GCD(P_i,P_j)\neq 1 をみたすものの個数を求めてください。
ただし、正整数 x, y に対して、GCD(x,y) で x と y の最大公約数を表します。
制約
- 1 \leq N \leq 2\times 10^5
- (P_1,P_2,\ldots,P_N) は (1,2,\ldots,N) の並び替えである。
- 入力は全て整数である。
入力
入力は以下の形式で標準入力から与えられる。
N P_1 P_2 \ldots P_N
出力
答えを出力せよ。
入力例 1
6 5 1 3 2 4 6
出力例 1
6
条件をみたす組は (3,3), (3,6), (4,4), (4,6), (5,5), (6,6) の 6 つです。 よって、 6 を出力します。
入力例 2
12 1 2 3 4 5 6 7 8 9 10 11 12
出力例 2
32
Score : 600 points
Problem Statement
Given is a permutation P=(P_1,P_2,\ldots,P_N) of the integers from 1 through N.
Find the number of pairs of integers (i,j) such that 1\leq i\leq j\leq N satisfying GCD(i,j)\neq 1 and GCD(P_i,P_j)\neq 1.
Here, for positive integers x and y, GCD(x,y) denotes the greatest common divisor of x and y.
Constraints
- 1 \leq N \leq 2\times 10^5
- (P_1,P_2,\ldots,P_N) is a permutation of (1,2,\ldots,N).
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N P_1 P_2 \ldots P_N
Output
Print the answer.
Sample Input 1
6 5 1 3 2 4 6
Sample Output 1
6
Six pairs (3,3), (3,6), (4,4), (4,6), (5,5), (6,6) satisfy the condition, so 6 should be printed.
Sample Input 2
12 1 2 3 4 5 6 7 8 9 10 11 12
Sample Output 2
32
Time Limit: 8 sec / Memory Limit: 1024 MB
配点 : 600 点
問題文
クレーンゲームの大会で優勝した高橋君は金塊詰め放題の権利を得ました。
会場には w_1 \lbrack\mathrm{kg}\rbrack, w_2 \lbrack\mathrm{kg}\rbrack, \dots, w_K \lbrack\mathrm{kg}\rbrack の重さの金塊、および金塊を詰める 1 \lbrack\mathrm{kg}\rbrack の袋が無尽蔵にあります。
高橋君は 1 個の空でない袋を持ち帰ることができます。
袋には 0 個以上の空でない袋と 0 個以上の金塊を入れることができます。
耐荷重量 W \lbrack\mathrm{kg}\rbrack のトラックを手配した高橋君は、 w = 2, 3, \dots, W について持ち帰る袋の総重量が w \lbrack\mathrm{kg}\rbrack である詰め方としてあり得る状態の数が気になりました。
w = 2, 3, \dots, W について状態数を 998244353 で割ったあまりを求めてください。ただし、
- 2 つの金塊が同じであるとは、金塊の重さが同じであることをいいます。
- 2 つの袋が同じ状態であるとは、袋に入っている袋および金塊からなる多重集合が一致することをいいます。
制約
- 2 \leq W \leq 2.5 \times 10^5
- 1 \leq K \leq W
- 1 \leq w_i \leq W (1 \leq i \leq K)
- i \neq j \to w_i \neq w_j (1 \leq i,j \leq K)
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
W K w_1 w_2 \dots w_K
出力
答えを W - 1 行出力せよ。
i 行目には w = i + 1 のときの答えを出力せよ。
入力例 1
4 1 1
出力例 1
1 2 4
w = 2, 3, 4 において袋の状態としてあり得るものを列挙したのが下の図になります。 (丸い線が袋を表しています。)
入力例 2
10 10 1 2 3 4 5 6 7 8 9 10
出力例 2
1 3 7 18 45 121 325 904 2546
Score : 600 points
Problem Statement
Takahashi won a claw machine competition and was awarded "all-you-can-stuff" gold blocks.
There are unlimited numbers of blocks weighing w_1, w_2, \dots, w_K kilograms each, and an unlimited number of bags weighing 1 kilogram each to stuff them.
Takahashi can bring home one non-empty bag.
A bag can contain zero or more other non-empty bags and zero or more gold blocks.
After arranging a truck with a load capacity of W kilograms, he gets interested in the number of ways to stuff gold blocks and bring home a bag that weighs w kilograms in total for w = 2, 3, \dots, W.
Find the number, modulo 998244353, of possible states of the bag for each w = 2, 3, \dots, W. Here,
- two gold blocks are said to be the same when their weights are the same;
- two bags are said to be in the same state when the two multisets whose elements are the bags and gold blocks in the two bags are the same.
Constraints
- 2 \leq W \leq 2.5 \times 10^5
- 1 \leq K \leq W
- 1 \leq w_i \leq W (1 \leq i \leq K)
- i \neq j \to w_i \neq w_j (1 \leq i,j \leq K)
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
W K w_1 w_2 \dots w_K
Output
Print the answer in W - 1 lines.
The i-th line should contain the count for w = i + 1.
Sample Input 1
4 1 1
Sample Output 1
1 2 4
The figure below enumerates the possible states of the bag for w = 2, 3, 4. (A circle represents a bag.)
Sample Input 2
10 10 1 2 3 4 5 6 7 8 9 10
Sample Output 2
1 3 7 18 45 121 325 904 2546