Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 9 点
問題文
ボタン付きの信号機があります。
この信号機は、信号が赤の時にボタンを押すと原則的には X 秒後に青に変わります。
ただし、最後に赤に変わってから Y 秒経つよりも早く青に変わってしまう場合は、代わりに最後に赤に変わってから Y 秒経った瞬間に青に変わります。
今、信号が最後に赤に変わってから Z 秒経った瞬間にボタンが押されました。
信号が青に変わるのは最後に赤に変わってから何秒後でしょうか。
制約
- 1 \leq X,Y,Z \leq 100
- 入力される値はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
X Y Z
出力
答えを整数として出力せよ。
入力例 1
10 20 5
出力例 1
20
赤に変わってからの経過時間 Z に X を足すと 5 + 10 = 15 秒になります。ただしこれは Y = 20 秒 よりも小さいので、ただし書きにある通り、赤に変わってから 20 秒後に青になります。
入力例 2
10 20 15
出力例 2
25
入力例 3
36 49 73
出力例 3
109
Score : 9 points
Problem Statement
There is a traffic light with a button.
In principle, if you press the button when the light is red, it turns green X seconds later.
However, if it would turn green earlier than Y seconds after it turned red last time, it turns green Y seconds after it turned red last time instead.
Now, the button has just been pressed Z seconds after it turned red last time.
How many seconds will pass before it turns green since it turned red last time?
Constraints
- 1 \leq X,Y,Z \leq 100
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
X Y Z
Output
Print the answer as an integer.
Sample Input 1
10 20 5
Sample Output 1
20
The elapsed time Z since it turned red plus X equals 5 + 10 = 15 seconds, which is less than Y = 20 seconds. So, as mentioned in the Problem Statement, it will turn green 20 seconds after it turned red.
Sample Input 2
10 20 15
Sample Output 2
25
Sample Input 3
36 49 73
Sample Output 3
109
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 8 点
問題文
整数 N が与えられます。 \displaystyle\frac{N}{100} の小数点以下を切り捨てて得られる値を整数として出力してください。
制約
- 1 \leq N \leq 10^{500000}
- N は整数
入力
入力は以下の形式で標準入力から与えられる。
N
出力
答えとなる整数を出力せよ。
入力例 1
9876
出力例 1
98
\displaystyle\frac{9876}{100} = 98.76 です。その小数点以下を切り捨てると 98 となります。 よって、98 と出力します。
入力例 2
99
出力例 2
0
\displaystyle\frac{99}{100} = 0.99 です。その小数点以下を切り捨てると 0 となります。 よって、0 と出力します。
入力例 3
31415926535897932384626433832795028841971693993
出力例 3
314159265358979323846264338327950288419716939
入力や出力の値が非常に大きい場合があることに注意してください。
Score : 8 points
Problem Statement
You are given an integer N. Truncate \displaystyle\frac{N}{100} by discarding the fractional part and print the resulting integer.
Constraints
- 1 \leq N \leq 10^{500000}
- N is an integer.
Input
Input is given from Standard Input in the following format:
N
Output
Print the answer as an integer.
Sample Input 1
9876
Sample Output 1
98
We have \displaystyle\frac{9876}{100} = 98.76, and discarding the fractional part results in 98. Thus, 98 should be printed.
Sample Input 2
99
Sample Output 2
0
We have \displaystyle\frac{99}{100} = 0.99, and discarding the fractional part results in 0. Thus, 0 should be printed.
Sample Input 3
31415926535897932384626433832795028841971693993
Sample Output 3
314159265358979323846264338327950288419716939
Note that the values in input and output may be enormous.
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 8 点
問題文
3 個の 6 面サイコロがあり、i 番目のサイコロを振った時に出目 j が出る確率は \frac{P_{i,j}} {100} です。
3 個のサイコロを振った時出目の和が K になる確率を K=1,2,\ldots,18 について求めてください。
制約
- 0\leq P_{i,j}\leq 100
- P_{i,1}+P_{i,2}+P_{i,3}+P_{i,4}+P_{i,5}+P_{i,6} = 100
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
P_{1,1} P_{1,2} P_{1,3} P_{1,4} P_{1,5} P_{1,6} P_{2,1} P_{2,2} P_{2,3} P_{2,4} P_{2,5} P_{2,6} P_{3,1} P_{3,2} P_{3,3} P_{3,4} P_{3,5} P_{3,6}
出力
3 個のサイコロを振った時出目の和が K になる確率を R_K とする。
18 行に渡って答えを出力せよ。 i\ (1 \leq i \leq 18) 行目には R_{i} を出力せよ。
なお、想定解答との絶対誤差または相対誤差が 10^{-4} 以下であれば正解として扱われる。
入力例 1
10 10 20 20 20 20 10 10 20 20 20 20 10 10 20 20 20 20
出力例 1
0.000000 0.000000 0.001000 0.003000 0.009000 0.019000 0.036000 0.060000 0.086000 0.114000 0.132000 0.140000 0.132000 0.108000 0.080000 0.048000 0.024000 0.008000
入力例 2
100 0 0 0 0 0 100 0 0 0 0 0 100 0 0 0 0 0
出力例 2
0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Score : 8 points
Problem Statement
We have three six-sided dice. When the i-th die is thrown, it shows the number j with the probability \frac{P_{i,j}} {100}.
If we throw these three dice, what is the probability that the sum of the numbers shown is K, for each K=1,2,\ldots,18?
Constraints
- 0\leq P_{i,j}\leq 100
- P_{i,1}+P_{i,2}+P_{i,3}+P_{i,4}+P_{i,5}+P_{i,6} = 100
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
P_{1,1} P_{1,2} P_{1,3} P_{1,4} P_{1,5} P_{1,6} P_{2,1} P_{2,2} P_{2,3} P_{2,4} P_{2,5} P_{2,6} P_{3,1} P_{3,2} P_{3,3} P_{3,4} P_{3,5} P_{3,6}
Output
Let R_K be the probability that the sum of the numbers shown is K when throwing the three dice.
Print 18 lines, the i-th of which (1 \leq i \leq 18) contains R_{i}.
Your output will be considered correct if its absolute or relative errors from the judge's answer are at most 10^{-4}.
Sample Input 1
10 10 20 20 20 20 10 10 20 20 20 20 10 10 20 20 20 20
Sample Output 1
0.000000 0.000000 0.001000 0.003000 0.009000 0.019000 0.036000 0.060000 0.086000 0.114000 0.132000 0.140000 0.132000 0.108000 0.080000 0.048000 0.024000 0.008000
Sample Input 2
100 0 0 0 0 0 100 0 0 0 0 0 100 0 0 0 0 0
Sample Output 2
0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 7 点
問題文
青木先生は生徒の高橋君に、単純な無向グラフを作る宿題を与えました。
無向グラフが単純であるとは、グラフが下記の 2 つの条件をともに満たすことをいいます。
- 多重辺が存在しない。すなわち、任意の 2 つの頂点 u, v について、u と v を結ぶ辺の本数は高々 1 本である。
- 自己ループが存在しない。すなわち、「v と v 自身を結ぶ辺は存在しない」が任意の頂点 v について成り立つ。
高橋君は作った無向グラフ G を次の形式でノートに書いて青木先生に提出します。
N M u_1 v_1 u_2 v_2 \vdots u_M v_M
ここで、N は G の頂点数、M は G の辺数であり、 i = 1, 2, \ldots, M について u_i, v_i は「 G の i 番目の辺が頂点 u_i と頂点 v_i を結ぶ」ことを表します。
青木先生は、高橋君が提出したノートが単純な無向グラフを正しく表現しているかを判定します。 具体的には、高橋君のノートが次の 2 つの条件をともに満たすかを判定します。
- すべての i = 1, 2, \ldots, M について、1 \leq u_i \leq N かつ 1 \leq v_i \leq N 。
- 表現される無向グラフは単純。
青木先生の立場で、高橋君が提出したノートが上記の 2 つの条件をともに満たすかを判定してください。
制約
- 1 \leq N, M \leq 2 \times 10^5
- 1 \leq u_i, v_i \leq 2 \times 10^5
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N M u_1 v_1 u_2 v_2 \vdots u_M v_M
出力
高橋君が提出したノートが問題文中の 2 つの条件をともに満たすとき Yes
を、そうでないなら No
を出力せよ。
入力例 1
3 3 1 2 2 3 3 4
出力例 1
No
N = 3 かつ v_3 = 4 であるため、1 \leq v_3 \leq N を満たしません。
よって、No
を出力します。
入力例 2
2 2 1 2 2 1
出力例 2
No
表現される無向グラフは、頂点 1 と頂点 2 を結ぶ辺を 2 本持つため、単純ではありません。
よって、No
を出力します。
入力例 3
1 1 1 1
出力例 3
No
表現される無向グラフは、頂点 1 と頂点 1 自身を結ぶ自己ループを持つため、単純ではありません。
よって、No
を出力します。
入力例 4
5 4 1 3 3 4 4 1 2 5
出力例 4
Yes
Score : 7 points
Problem Statement
Mr. Aoki gave Takahashi, his student, an assignment that asked him to make a simple undirected graph.
An undirected graph is simple when both of the following conditions are satisfied.
- There are no multi-edges. That is, for any two vertices u and v, there is at most one edge connecting u and v.
- There are no self-loops. That is, for any vertex v, there is no edge connecting v and v itself.
Takahashi writes his undirected graph G in the following format in his notebook and submits it to his teacher.
N M u_1 v_1 u_2 v_2 \vdots u_M v_M
Here, N and M are the numbers of vertices and edges in G, respectively, and u_i and v_i for each i = 1, 2, \ldots, M means that the i-th edge connects Vertex u_i and Vertex v_i.
Mr. Aoki will check whether Takahashi's writing correctly describes a simple undirected graph. More accurately, the teacher will check whether both of the following are satisfied.
- 1 \leq u_i \leq N and 1 \leq v_i \leq N, for every i = 1, 2, \ldots, M.
- The undirected graph described is simple.
Put yourself in Mr. Aoki's shoes and check whether Takahashi's writing satisfies both conditions above.
Constraints
- 1 \leq N, M \leq 2 \times 10^5
- 1 \leq u_i, v_i \leq 2 \times 10^5
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N M u_1 v_1 u_2 v_2 \vdots u_M v_M
Output
If Takahashi's writing satisfies both of the conditions in the Problem Statement, print Yes
; otherwise, print No
.
Sample Input 1
3 3 1 2 2 3 3 4
Sample Output 1
No
Here we have N = 3 and v_3 = 4, which is in violation of 1 \leq v_3 \leq N.
Therefore, No
should be printed.
Sample Input 2
2 2 1 2 2 1
Sample Output 2
No
This undirected graph has two edges connecting Vertex 1 and Vertex 2 and thus is not simple.
Therefore, No
should be printed.
Sample Input 3
1 1 1 1
Sample Output 3
No
This undirected graph has a self-loop connecting Vertex 1 and itself and thus is not simple.
Therefore, No
should be printed.
Sample Input 4
5 4 1 3 3 4 4 1 2 5
Sample Output 4
Yes
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 7 点
問題文
R ラウンドからなる棒倒しゲームをします。
各ラウンドは以下のように行われます。
- N 本の棒を設置する。
- 次の操作を M 回繰り返す。
- 棒にめがけてボールを投げ、棒が倒れた本数をスコアとして記録する。
- 倒れた棒を捨てる。
- N 本の棒全てが捨てられた場合、残りの操作回数にかかわらずラウンドを終了する。
長さ L の整数列 s=(s_1,s_2,\ldots,s_L) が与えられます。
これが棒倒しゲーム全体のスコアを順番に記録したものとしてあり得るかどうか判定してください。
制約
- 1 \leq R,N,M \leq 100
- R \leq L \leq R\times M
- 0 \leq s_i \leq N
- 入力に含まれる値は全て整数である
入力
入力は以下の形式で標準入力から与えられる。
R N M L s_1 s_2 \ldots s_L
出力
整数列 s が棒倒しゲーム全体のスコアを順番に記録したものとしてあり得るならば Yes
と、あり得ないならば No
と出力せよ。
入力例 1
3 10 5 9 7 3 0 2 4 0 1 0 10
出力例 1
Yes
ラウンド 1 では 7,3 本の棒が倒され、ラウンド 2 では 0,2,4,0,1 本の棒が倒され、ラウンド 3 では 0,10 本の棒が倒されました。
入力例 2
1 100 3 2 10 20
出力例 2
No
入力例 3
2 100 3 5 100 10 20 30 40
出力例 3
No
入力例 4
3 30 100 5 20 20 15 15 30
出力例 4
No
Score : 7 points
Problem Statement
Let us play a game of bowling consisting of R rounds.
Each round goes as follows.
- Place N pins.
- Repeat the following procedure M times.
- Throw a ball toward them, and record the number of pins knocked down as the score.
- Remove the pins knocked down.
- If all N pins have been removed, end the round even if this procedure is not repeated M times.
You are given a sequence of L integers: s=(s_1,s_2,\ldots,s_L).
Determine whether this can be a sequence of scores recorded in order in the whole game.
Constraints
- 1 \leq R,N,M \leq 100
- R \leq L \leq R\times M
- 0 \leq s_i \leq N
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
R N M L s_1 s_2 \ldots s_L
Output
If s can be a sequence of scores recorded in order in the whole game, print Yes
; otherwise, print No
.
Sample Input 1
3 10 5 9 7 3 0 2 4 0 1 0 10
Sample Output 1
Yes
In the first round, 7 and then 3 pins are knocked down. In the second round, 0, 2, 4, 0, and then 1 pin(s) are knocked down. In the third round, 0 and then 10 pins are knocked down.
Sample Input 2
1 100 3 2 10 20
Sample Output 2
No
Sample Input 3
2 100 3 5 100 10 20 30 40
Sample Output 3
No
Sample Input 4
3 30 100 5 20 20 15 15 30
Sample Output 4
No
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 7 点
問題文
1 から N までの番号がついた N 種類の薬があります。
薬の効き目は 1 から 100 までの整数で表されて、大きければ大きいほど効き目が高いです。薬 i の効き目は A_i です。(A_i は全て相異なります。)
また、薬にはアレルゲン(アレルギー反応の原因となる物質)が入っています。アレルゲンは 1 から 2 \times 10^5 までの整数で表せて、薬 i には C_i 個のアレルゲン X_{i,1}, X_{i,2}, \dots, X_{i,C_i} が含まれています。
Q 個のクエリが与えられるので指示に従って処理してください。p 番目のクエリは以下の通りです。
人 p は D_p 種類のアレルギーを持っていて、アレルゲン Y_{p,1}, Y_{p,2}, \dots, Y_{p,D_p} のいずれか 1 つ以上を含んでいる薬を与えることはできません。
人 p に 薬 1 から薬 N のうちいずれか 1 つを与えることを考えます。人 p に与えることができる薬の中で最も効き目の高い薬の番号を出力してください。ただし、与えることができる薬が存在しなければ -1 を出力してください。
制約
- 1 \leq N \leq 100
- 1 \leq A_i \leq 100
- i \neq j ならば A_i \neq A_j
- 0 \leq C_i
- 0 \leq \sum_{i=1}^N C_i \leq 10^5
- 1 \leq X_{i,j} \leq 2 \times 10^5
- j \neq k ならば X_{i, j} \neq X_{i, k}
- 1 \leq Q \leq 10^5
- 0 \leq D_p
- 0 \leq \sum_{p=1}^Q D_{p} \leq 10^5
- 1 \leq Y_{p,q} \leq 2 \times 10^5
- q \neq r ならば Y_{p,q} \neq Y_{p,r}
- 入力される値はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N A_1 A_2 \dots A_N C_1 X_{1,1} X_{1,2} \dots X_{1,C_1} C_2 X_{2,1} X_{2,2} \dots X_{2,C_2} \vdots C_N X_{N,1} X_{N,2} \dots X_{N,C_N} Q D_1 Y_{1,1} Y_{1,2} \dots Y_{1,D_1} D_2 Y_{2,1} Y_{2,2} \dots Y_{2,D_2} \vdots D_Q Y_{Q,1} Y_{Q,2} \dots Y_{Q,D_Q}
出力
Q 行出力せよ。i 行目には i 番目のクエリへの答えを出力せよ。
入力例 1
3 10 9 8 3 1 2 3 1 1 2 2 3 4 0 1 1 1 2 2 1 2
出力例 1
1 3 2 -1
参考として、薬およびクエリに関する情報をまとめると次のようになります。
- 薬 1 は効き目が 10 でアレルゲン 1,2,3 を含んでいる。
- 薬 2 は効き目が 9 でアレルゲン 1 を含んでいる。
- 薬 3 は効き目が 8 でアレルゲン 2,3 を含んでいる。
- 人 1 にはすべての薬を与えることができる。
- 人 2 にはアレルゲン 1 の入った薬を与えられない。
- 人 3 にはアレルゲン 2 の入った薬を与えられない。
- 人 4 にはアレルゲン 1, 2 の少なくとも一方が入った薬を与えられない。
Score : 7 points
Problem Statement
We have N kinds of drugs numbered 1 to N.
The efficiency of a drug is represented by an integer from 1 to 100; the greater, the more efficient. The efficiency of Drug i is A_i. (All A_i are distinct.)
The drugs also contain allergens (substances that cause allergic reactions). Allergens are represented by integers from 1 to 2 \times 10^5, and Drug i contains C_i allergens X_{i,1}, X_{i,2}, \dots, X_{i,C_i}.
You are given Q queries, which should be processed according to the instruction. The p-th query is the following:
Person p has allergies to D_p allergens Y_{p,1}, Y_{p,2}, \dots, Y_{p,D_p}, and may not be given a drug containing one or more of those allergens.
Consider giving Person p one of the drugs from Drug 1 to Drug N. Print the number representing the most efficient drug that may be given to Person p. If no drug may be given, print -1.
Constraints
- 1 \leq N \leq 100
- 1 \leq A_i \leq 100
- A_i \neq A_j if i \neq j.
- 0 \leq C_i
- 0 \leq \sum_{i=1}^N C_i \leq 10^5
- 1 \leq X_{i,j} \leq 2 \times 10^5
- X_{i, j} \neq X_{i, k} if j \neq k.
- 1 \leq Q \leq 10^5
- 0 \leq D_p
- 0 \leq \sum_{p=1}^Q D_{p} \leq 10^5
- 1 \leq Y_{p,q} \leq 2 \times 10^5
- Y_{p,q} \neq Y_{p,r} if q \neq r.
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N A_1 A_2 \dots A_N C_1 X_{1,1} X_{1,2} \dots X_{1,C_1} C_2 X_{2,1} X_{2,2} \dots X_{2,C_2} \vdots C_N X_{N,1} X_{N,2} \dots X_{N,C_N} Q D_1 Y_{1,1} Y_{1,2} \dots Y_{1,D_1} D_2 Y_{2,1} Y_{2,2} \dots Y_{2,D_2} \vdots D_Q Y_{Q,1} Y_{Q,2} \dots Y_{Q,D_Q}
Output
Print Q lines. The i-th line should contain the answer to the i-th query.
Sample Input 1
3 10 9 8 3 1 2 3 1 1 2 2 3 4 0 1 1 1 2 2 1 2
Sample Output 1
1 3 2 -1
Here is a summary of information about the drugs and queries.
- Drug 1 has an efficiency of 10 and contains Allergens 1, 2, and 3.
- Drug 2 has an efficiency of 9 and contains Allergen 1.
- Drug 3 has an efficiency of 8 and contains Allergens 2 and 3.
- Person 1 may be given any drug.
- Person 2 may not be given a drug containing Allergen 1.
- Person 3 may not be given a drug containing Allergen 2.
- Person 4 may not be given a drug containing one or more of Allergens 1 and 2.
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 6 点
問題文
S を英小文字のみからなる文字列、T を英小文字および ?
のみからなる文字列とします。
T に含まれる ?
をそれぞれ適切な英小文字 1 つで置き換えることで、T を S に一致させることができるとき、「 S は T から作れる」と言います。
例えば、a??d
からは abcd
や addd
を作れますが bcdd
を作ることはできません。
英小文字のみからなる N 個の文字列 S_1, S_2, \ldots, S_N が入力として与えられます。
これらの長さはすべて L です。すなわち、|S_1| = |S_2| = \cdots = |S_N| = L です。
文字列 T として、英小文字および ?
からなる長さ L の文字列であって ?
をちょうど K 個含むものを任意に選びます。
「 S_1, S_2, \ldots, S_N のうち、T から作れるものの個数」としてありえる最大値を出力してください。
制約
- 1 \leq N \leq 1000
- 1 \leq L \leq 10
- 0 \leq K \leq L
- N, L, K は整数
- S_1, S_2, \ldots, S_N はそれぞれ英小文字のみからなる長さ L の文字列
- S_1, S_2, \ldots, S_N は相異なる。
入力
入力は以下の形式で標準入力から与えられる。
N L K S_1 S_2 \vdots S_N
出力
答えを出力せよ。
入力例 1
5 4 2 aabc bbaa abbc cccc acba
出力例 1
3
T = a?b?
とすると、S_1 = aabc
, S_3 = abbc
, S_5 = acba
の 3 つを T から作れます。
このとき「 S_1, S_2, \ldots, S_N のうち、T から作れるものの個数」は 3 であり、これがあり得る最大値となります。
K = 2 より、T は ?
をちょうど 2 個含むように選ばれなければならないことに注意してください。
入力例 2
5 4 4 aabc bbaa abbc cccc acba
出力例 2
5
T = ????
とすると、S_1, S_2, S_3, S_4, S_5 のすべてを作れます。
入力例 3
5 4 0 aabc bbaa abbc cccc acba
出力例 3
1
Score : 6 points
Problem Statement
Let S be a string consisting of lowercase English letters and T be a string consisting of lowercase English letters and ?
.
S is said to be obtainable from T when one can replace each occurrence of ?
in T with some lowercase English letter so that T equals S.
For example, abcd
and addd
are obtainable from a??d
, while bcdd
is not.
You are given N strings S_1, S_2, \ldots, S_N consisting of lowercase English letters.
All of these strings have a length of L: |S_1| = |S_2| = \cdots = |S_N| = L.
A string T of length L consisting of lowercase English letters is arbitrarily chosen so that it contains exactly K ?
s.
Find the maximum possible number of strings among S_1, S_2, \ldots, S_N that are obtainable from T.
Constraints
- 1 \leq N \leq 1000
- 1 \leq L \leq 10
- 0 \leq K \leq L
- N, L, and K are integers.
- Each of S_1, S_2, \ldots, S_N is a string of length L consisting of lowercase English letters.
- S_1, S_2, \ldots, S_N are distinct.
Input
Input is given from Standard Input in the following format:
N L K S_1 S_2 \vdots S_N
Output
Print the answer.
Sample Input 1
5 4 2 aabc bbaa abbc cccc acba
Sample Output 1
3
If we let T = a?b?
, then S_1 = aabc
, S_3 = abbc
, and S_5 = acba
are obtainable from T.
Here, three of the strings S_1, S_2, \ldots, S_N are obtainable from T, which is the maximum possible number.
Note that K = 2, so T must be chosen to contain exactly two ?
s.
Sample Input 2
5 4 4 aabc bbaa abbc cccc acba
Sample Output 2
5
If we let T = ????
, all of S_1, S_2, S_3, S_4, S_5 are obtainable from T.
Sample Input 3
5 4 0 aabc bbaa abbc cccc acba
Sample Output 3
1
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 6 点
問題文
高橋君は 0 枚の金貨、 10^9 枚の銀貨、および X 枚の銅貨を持っています。
お店に N 個の袋が売られています。 i = 1, 2, \ldots, N について、i 個目の袋は A_i 枚の銀貨と B_i 枚の銅貨を支払うことで買うことができます。また、i 個目の袋の中には C_i 枚の金貨が入っており、袋を買うことでその中の金貨を手に入れることができます。
金貨 1 枚には 10^{100^{100}} 円の、銀貨 1 枚には 10^{100} 円の、銅貨 1 枚には 1 円の価値があります。 高橋君は N 個の袋のうち好きな個数( 0 個でも良い)の袋を買い、最終的に持っている金貨、銀貨、銅貨の価値の合計を最大にしたいです。 最終的に持っている金貨、銀貨、銅貨の価値の合計が最大となるときの、金貨、銀貨、銅貨の枚数をそれぞれ出力してください。
袋を購入するために必要な銅貨や銀貨を他の種類の硬貨で代用することはできません。 例えば、銀貨 1 枚は円に換算したときには銅貨 10^{100} 枚分の価値がありますが、それを理由に銅貨の支払いを代わりに銀貨の支払いで済ませることはできません。
制約
- 1 \leq N \leq 3000
- 0 \leq X \leq 3000
- 0 \leq A_i, B_i \leq 3000
- 1 \leq A_i + B_i
- 1 \leq C_i \leq 3000
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N X A_1 B_1 C_1 A_2 B_2 C_2 \vdots A_N B_N C_N
出力
下記の形式にしたがって、高橋君が最終的に持っている金貨、銀貨、銅貨の価値の合計が最大となるときの、金貨の枚数 P 、銀貨の枚数 Q 、銅貨の枚数 R を空白区切りで出力せよ。
P Q R
入力例 1
5 4 2 2 3 2 2 2 3 1 2 1 3 1 1 2 2
出力例 1
5 999999997 0
1 番目の袋と 5 番目の袋を買うと、高橋君は A_1+A_5 = 2 + 1 = 3 枚の銀貨と B_1+B_5 = 2 + 2 = 4 枚の銅貨を支払って、C_1+C_5 = 3 + 2 = 5 枚の金貨を得ます。 その後、高橋君は金貨 5 枚、銀貨 10^9-3 枚、銅貨 0 枚を持っている状態であり、持っている金貨、銀貨、銅貨の価値の合計は 5 \times 10^{100^{100}} + (10^9-3) \times 10^{100} + 0 \times 1 円で、これが考えられる最大の値です。
入力例 2
20 50 4 3 7 2 0 8 7 2 4 9 0 9 6 5 8 4 7 1 3 9 2 3 9 2 7 4 4 2 7 3 6 3 2 4 10 8 2 2 10 8 1 5 3 2 6 3 8 5 8 1 9 3 7 4 9 6 2 5 6 7
出力例 2
92 999999930 0
Score : 6 points
Problem Statement
Takahashi has 0 gold coins, 10^9 silver coins, and X bronze coins.
A shop sells N bags. For i = 1, 2, \ldots, N, the i-th bag can be bought by paying A_i silver coins and B_i bronze coins. The i-th bag contains C_i gold coins; by buying the bag, he obtains the gold coins in it.
A gold coin is worth 10^{100^{100}} yen (the currency in Japan), a silver coin is worth 10^{100} yen, and a bronze coin is worth 1 yen. Takahashi wants to buy some (possibly zero) of the N bags and maximize the resulting total value of the gold, silver, and bronze coins he has. Print the numbers of gold, silver, and bronze coins, when the resulting total value of the gold, silver, and bronze coins is maximized.
The bronze and silver coins required for buying a bag cannot be substituted by another kind of coin. For example, a silver coin is worth 10^{100} bronze coins when converted into yen, but it does not mean you can pay a silver coin instead of paying bronze coins.
Constraints
- 1 \leq N \leq 3000
- 0 \leq X \leq 3000
- 0 \leq A_i, B_i \leq 3000
- 1 \leq A_i + B_i
- 1 \leq C_i \leq 3000
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N X A_1 B_1 C_1 A_2 B_2 C_2 \vdots A_N B_N C_N
Output
Print the numbers of gold coins P, silver coins Q, and bronze coins R, when the resulting total value of the gold, silver, and bronze coins is maximized. The numbers should be printed in the following format, separated by spaces:
P Q R
Sample Input 1
5 4 2 2 3 2 2 2 3 1 2 1 3 1 1 2 2
Sample Output 1
5 999999997 0
If Takahashi buys the 1-st and 5-th bags, he will pay A_1+A_5 = 2 + 1 = 3 silver coins and B_1+B_5 = 2 + 2 = 4 bronze coins, and obtain C_1+C_5 = 3 + 2 = 5 gold coins. As a result, he will have 5 gold coins, 10^9-3 silver coins, and 0 bronze coins, for a total value of 5 \times 10^{100^{100}} + (10^9-3) \times 10^{100} + 0 \times 1 yen, which is maximum possible.
Sample Input 2
20 50 4 3 7 2 0 8 7 2 4 9 0 9 6 5 8 4 7 1 3 9 2 3 9 2 7 4 4 2 7 3 6 3 2 4 10 8 2 2 10 8 1 5 3 2 6 3 8 5 8 1 9 3 7 4 9 6 2 5 6 7
Sample Output 2
92 999999930 0
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 6 点
問題文
T 個のテストケースについて、以下の問題を解いてください。
高橋君は「ルンルンマート」で使える M 円の商品券を 10^{100} 枚持っています。
この商品券を、購入する商品の金額に比べて過剰に使った場合でも、おつりが返ってくることはありません。
高橋君は、 i 日目に A \times i 円のリンゴを商品券のみを使って買います。
このとき、 A \times i 円以上を支払える最小の (M 円の) 商品券の枚数を k 枚とすると、高橋くんの「悲しさ」が k \times M - A \times i だけ増加します。
この買い物を N 日続けたとき、高橋君の「悲しさ」の総和はいくつになりますか?
制約
- 入力は全て整数
- 1 \le T \le 10^5
- 1 \le N \le 10^6
- 1 \le A,M \le 300
入力
入力は以下の形式で標準入力から与えられる。
T \rm{case}_1 \rm{case}_2 \dots \rm{case}_T
ただし、 \rm{case}_i は i 番目のテストケースを表し、各テストケースは以下の形式で与えられる。
N A M
出力
計 T 行出力せよ。
i 行目に i 番目のテストケースの答えを整数として出力せよ。
入力例 1
10 4 5 8 8 9 10 4 10 7 10 1 5 6 4 9 304607 77 89 291969 231 9 424790 216 294 76881 213 111 312895 58 1
出力例 1
14 36 12 20 24 13402703 875907 61169622 4151490 0
この入力には、 10 個のテストケースが含まれています。
1 番目のケースでは、 N=4,A=5,M=8 です。
- 1 日目には 5 円のリンゴを買います。 8 円の商品券は 1 枚必要で、このとき高橋君の「悲しさ」は 3 増加します。
- 2 日目には 10 円のリンゴを買います。 8 円の商品券は 2 枚必要で、このとき高橋君の「悲しさ」は 6 増加します。
- 3 日目には 15 円のリンゴを買います。 8 円の商品券は 2 枚必要で、このとき高橋君の「悲しさ」は 1 増加します。
- 4 日目には 20 円のリンゴを買います。 8 円の商品券は 3 枚必要で、このとき高橋君の「悲しさ」は 4 増加します。
よって、 1 番目のケースに対する答えは、 3+6+1+4=14 となります。
Score : 6 points
Problem Statement
Solve the following problem for T test cases.
Takahashi has 10^{100} coupons, each worth M yen, available in Lunlun Mart.
The shop does not give change on these coupons where the price of the purchased item is less than the value of the coupons.
On the i-th day, Takahashi will buy an apple worth A \times i yen using only the coupons.
Here, the sadness of Takahashi increases by k \times M - A \times i, where k is the minimum number of (M-yen) coupons needed to pay at least A \times i yen.
In N days of shopping, how much total sadness will Takahashi accumulate?
Constraints
- All values in input are integers.
- 1 \le T \le 10^5
- 1 \le N \le 10^6
- 1 \le A,M \le 300
Input
Input is given from Standard Input in the following format:
T \rm{case}_1 \rm{case}_2 \dots \rm{case}_T
Here, \rm{case}_i represents the i-th test case in the following format:
N A M
Output
Print T lines.
The i-th line should contain the answer to the i-th test case as an integer.
Sample Input 1
10 4 5 8 8 9 10 4 10 7 10 1 5 6 4 9 304607 77 89 291969 231 9 424790 216 294 76881 213 111 312895 58 1
Sample Output 1
14 36 12 20 24 13402703 875907 61169622 4151490 0
This input contains 10 test cases.
In the first case, N=4, A=5, and M=8.
- On the 1-st day, he buys an apple worth 5 yen. One 8-yen coupon is needed, and his sadness increases by 3.
- On the 2-nd day, he buys an apple worth 10 yen. Two 8-yen coupons are needed, and his sadness increases by 6.
- On the 3-rd day, he buys an apple worth 15 yen. Two 8-yen coupons are needed, and his sadness increases by 1.
- On the 4-th day, he buys an apple worth 20 yen. Three 8-yen coupons are needed, and his sadness increases by 4.
Therefore, the answer to this case is 3+6+1+4=14.
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 6 点
問題文
縦 H メートル、横 W メートルの長方形の庭があります。
庭の中心には水を撒くためのスプリンクラーがあり、スプリンクラーから半径 D メートル以内の範囲には水を撒くことができます。
庭のうちスプリンクラーにより水を撒くことができる面積の、庭全体に占める割合はいくらですか?
制約
- 1 \leq H,W \leq 10^5
- 1 \leq D \leq 10^5
- 入力に含まれる値は全て整数である
入力
入力は以下の形式で標準入力から与えられる。
H W D
出力
答えを出力せよ。
なお、真の解との絶対誤差または相対誤差が 10^{-6} 以下であれば正解として扱われる。
入力例 1
10 15 3
出力例 1
0.1884955592
スプリンクラーにより水を撒くことができるのは半径 3 メートルの円の内部の約 28.3 平方メートルです。
庭の面積は 10\times 15=150 平方メートルなので、求める割合は 0.1884955592\ldots になります。
入力例 2
10 15 6
出力例 2
0.6939614954
スプリンクラーにより水を撒くことができるのは半径 6 メートルの円の内部ですが、一部は庭の外にはみ出します。
庭のうちスプリンクラーにより水を撒くことができる面積は、約 104.1 平方メートルであり、
庭の面積は 10\times 15=150 平方メートルなので、求める割合は 0.6939614954\ldots になります。
Score : 6 points
Problem Statement
There is a rectangular garden that is H meters long and W meters wide.
At the center of the garden is a sprinkler, which sprays water within a radius of D meters from it.
Find the proportion of the area sprayed by the sprinkler in the garden.
Constraints
- 1 \leq H,W \leq 10^5
- 1 \leq D \leq 10^5
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
H W D
Output
Print the answer.
Your answer will be considered correct if the absolute or relative error from the true value is at most 10^{-6}.
Sample Input 1
10 15 3
Sample Output 1
0.1884955592
The sprinkler sprays the interior of a circle of radius 3 meters, whose area is about 28.3 square meters.
The area of the garden is 10\times 15=150 square meters, so the desired proportion is 0.1884955592\ldots.
Sample Input 2
10 15 6
Sample Output 2
0.6939614954
The sprinkler sprays the interior of a circle of radius 6 meters, some of which sticks out of the garden.
The area of the region sprayed by the sprinkler is about 104.1 square meters,
and the area of the garden is 10\times 15=150 square meters, so the desired proportion is 0.6939614954\ldots.
Time Limit: 4 sec / Memory Limit: 1024 MB
配点 : 6 点
問題文
N 頂点 M 辺の無向グラフがあります。初め、 i 番目の辺は頂点 a_i と頂点 b_i を結んでいます。
Q 個のクエリを処理してください。 i 番目のクエリは t_i,x_i,y_i を用いて以下のように表されます。
- t_i=1 の時、頂点 x_i と頂点 y_i を結ぶ辺を追加してください。なお、一つのテストケースに含まれるこの種類のクエリは 10 個以下です。
- t_i=2 の時、頂点 x_i と頂点 y_i を結ぶ辺を削除してください。
- t_i=3 の時、頂点 x_i と頂点 y_i が同じ連結成分に属するならば
Yes
と、そうでなければNo
と出力してください。
制約
- 1 \leq N,M,Q \leq 10^5
- 1 \leq a_i \lt b_i \leq N
- i \neq j ならば (a_i,b_i) \neq (a_j,b_j)
- t_i \in \{ 1,2,3 \}
- 1 \leq x_i \lt y_i \leq N
- t_i=1 を満たす i は 10 個以下
- t_i=1 ならば、そのクエリの時点で頂点 x_i と頂点 y_i を結ぶ辺が存在しない
- t_i=2 ならば、そのクエリの時点で頂点 x_i と頂点 y_i を結ぶ辺が存在する
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N M a_1 b_1 \vdots a_M b_M Q t_1 x_1 y_1 \vdots t_Q x_Q y_Q
出力
t_i=3 を満たすクエリの度に答えを出力し、改行せよ。
入力例 1
5 3 1 3 2 3 4 5 4 1 1 4 3 1 5 2 2 3 3 1 5
出力例 1
Yes Yes
入力例 2
5 2 1 3 2 4 2 2 2 4 2 1 3
出力例 2
t_i=3 を満たすクエリが存在しない場合もあります。
Score : 6 points
Problem Statement
There is an undirected graph with N vertices and M edges. Initially, the i-th edge connects Vertex a_i and Vertex b_i.
Process Q queries. The i-th query is represented by t_i, x_i, and y_i as follows.
- If t_i=1, add an edge connecting Vertex x_i and Vertex y_i. There are at most 10 queries of this kind in a single test case.
- If t_i=2, delete the edge connecting Vertex x_i and Vertex y_i.
- If t_i=3, print
Yes
if Vertex x_i and Vertex y_i belong to the same connected component, andNo
otherwise.
Constraints
- 1 \leq N,M,Q \leq 10^5
- 1 \leq a_i \lt b_i \leq N
- (a_i,b_i) \neq (a_j,b_j) if i \neq j.
- t_i \in \{ 1,2,3 \}
- 1 \leq x_i \lt y_i \leq N
- There are at most 10 indices i such that t_i=1.
- If t_i=1, there is no edge connecting Vertex x_i and Vertex y_i when the query is given.
- If t_i=2, there is an edge connecting Vertex x_i and Vertex y_i when the query is given.
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N M a_1 b_1 \vdots a_M b_M Q t_1 x_1 y_1 \vdots t_Q x_Q y_Q
Output
For each query such that t_i=3, print the answer and then a newline.
Sample Input 1
5 3 1 3 2 3 4 5 4 1 1 4 3 1 5 2 2 3 3 1 5
Sample Output 1
Yes Yes
Sample Input 2
5 2 1 3 2 4 2 2 2 4 2 1 3
Sample Output 2
There may be no query such that t_i=3.
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 6 点
問題文
1, \dots, N と番号付けられた N 枚の絵画があります。展覧会を開いて、これらの絵画のうちいくつかを展示することになりました。
美術評論家の高橋君は、展覧会のおすすめ度を以下に示すように点数化することにしました。
- i = 1, \dots, N について、絵画 i が展示されているなら A_i 点を加算する。
- さらに、j = 1 \dots, M について、以下の条件が全て満たされるとき P_j 点を加算する。
- 展示されている絵画のうち番号が Q_j 未満のものの個数を 3 で割った余りが L_j に等しい。
- 展示されている絵画のうち番号が Q_j 以上のものの個数を 3 で割った余りが R_j に等しい。
展覧会のおすすめ度の点数としてありうる最大値を求めてください。
制約
- 1 \leq N, M \leq 2 \times 10^5
- 1 \leq A_i \leq 10^9 \, (1 \leq i \leq N)
- 1 \leq P_j \leq 10^9 \, (1 \leq j \leq M)
- 1 \leq Q_j \leq N + 1 \, (1 \leq j \leq M)
- 0 \leq L_j, R_j \leq 2 \, (1 \leq j \leq M)
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N M A_1 \ldots A_N P_1 Q_1 L_1 R_1 \vdots P_M Q_M L_M R_M
出力
答えを出力せよ。
入力例 1
3 2 1 2 3 4 3 2 0 5 2 0 1
出力例 1
8
3 番目の絵のみを展示するとき、おすすめ度は 3 + 5 = 8 点となり、これが最大です。
入力例 2
1 1 1 10 1 0 0
出力例 2
10
一枚も絵を展示しないのが最適です。
入力例 3
4 1 3 1 4 1 5 3 1 1
出力例 3
12
Score : 6 points
Problem Statement
There are N paintings numbered 1, \dots, N. We are going to choose some of them to display in an exhibition.
Takahashi the critic has decided to score the exhibition as follows:
- For i = 1, \dots, N, add A_i points if Painting i is exhibited.
- Additionally, for j = 1 \dots, M, add P_j points if all of the following conditions are satisfied:
- The number of exhibited paintings with indices strictly less than Q_j is congruent to L_j modulo 3.
- The number of exhibited paintings with indices greater than or equal to Q_j is congruent to R_j modulo 3.
Print the maximum possible score of the exhibition.
Constraints
- 1 \leq N, M \leq 2 \times 10^5
- 1 \leq A_i \leq 10^9 \, (1 \leq i \leq N)
- 1 \leq P_j \leq 10^9 \, (1 \leq j \leq M)
- 1 \leq Q_j \leq N + 1 \, (1 \leq j \leq M)
- 0 \leq L_j, R_j \leq 2 \, (1 \leq j \leq M)
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N M A_1 \ldots A_N P_1 Q_1 L_1 R_1 \vdots P_M Q_M L_M R_M
Output
Print the answer.
Sample Input 1
3 2 1 2 3 4 3 2 0 5 2 0 1
Sample Output 1
8
When only the 3-rd painting is exhibited, the score is 3 + 5 = 8 points, which is maximum possible.
Sample Input 2
1 1 1 10 1 0 0
Sample Output 2
10
It is optimal to exhibit no paintings.
Sample Input 3
4 1 3 1 4 1 5 3 1 1
Sample Output 3
12
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 6 点
問題文
N 巻シリーズの漫画があり、i \, (1 \leq i \leq N) 巻目は A_i 円で買うことができます。
また、この漫画はセットで買うこともできます。セットは M 種類あり、j \, (1 \leq j \leq M) 種類目は B_j 円で、シリーズの L_j 巻目、L_j + 1 巻目、\dots、R_j 巻目を買うことができます。
N 巻全てを 1 冊以上手に入れるためには、最小で何円支払う必要があるか求めてください。
制約
- 1 \leq N, M \leq 2 \times 10^5
- 1 \leq A_i \leq 10^9 \, (1 \leq i \leq N)
- 1 \leq B_j \leq 10^9 \, (1 \leq j \leq M)
- 1 \leq L_j \leq R_j \leq N \, (1 \leq j \leq M)
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N M A_1 \ldots A_N B_1 L_1 R_1 \vdots B_M L_M R_M
出力
答えを出力せよ。
入力例 1
5 3 5 4 6 2 3 4 1 2 7 2 4 14 2 5
出力例 1
14
次のようにすると 14 円で N = 5 巻全てを 1 冊以上手に入れることができます。これが最小です。
- B_1 = 4 円で 1 種類目のセットを買う。1 巻目および 2 巻目を手に入れる。
- B_2 = 7 円で 2 種類目のセットを買う。2 巻目、3 巻目、4 巻目を手に入れる。
- A_5 = 3 円で 5 巻目を買う。
入力例 2
6 3 3 1 4 1 5 9 3 1 2 12 4 6 10 3 4
出力例 2
19
Score : 6 points
Problem Statement
There is a series of manga consisting of N books. The i-th (1 \leq i \leq N) book is sold for A_i yen.
These books are also sold in sets. There are M sets, the j-th (1 \leq j \leq M) of which is sold for B_j yen and contains the L_j-th, (L_j + 1)-th, \ldots, R_j-th books of the series.
At least how many yen does one have to pay to get at least one of each of the N books?
Constraints
- 1 \leq N, M \leq 2 \times 10^5
- 1 \leq A_i \leq 10^9 \, (1 \leq i \leq N)
- 1 \leq B_j \leq 10^9 \, (1 \leq j \leq M)
- 1 \leq L_j \leq R_j \leq N \, (1 \leq j \leq M)
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N M A_1 \ldots A_N B_1 L_1 R_1 \vdots B_M L_M R_M
Output
Print the answer as an integer.
Sample Input 1
5 3 5 4 6 2 3 4 1 2 7 2 4 14 2 5
Sample Output 1
14
One can get at least one of each of the N = 5 books for 14 yen as follows. This is the minimum one has to pay.
- Buy the 1-st set for B_1 = 4 yen to get the 1-st and 2-nd books.
- Buy the 2-nd set for B_2 = 7 yen to get the 2-nd, 3-rd, and 4-th books.
- Buy the 5-th book for A_5 = 3 yen.
Sample Input 2
6 3 3 1 4 1 5 9 3 1 2 12 4 6 10 3 4
Sample Output 2
19
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 6 点
問題文
H 行 W 列のグリッドがあり、i 行 j 列目のマスには英小文字 a_{i,j} が書かれています。また、空の文字列 S があります。
Q 個のクエリを、入力で与えられる順番で処理してください。そして Q 個のクエリを処理した後の S を出力してください。
各クエリは下記の 2 種類のいずれかです。
1 p c
:文字列 S の末尾に文字 a_{p,W} を追加する。その後、a_{p,1}=c,a_{p,2}=a_{p,1},a_{p,3}=a_{p,2},\dots,a_{p,W}=a_{p,W-1} と同時に更新する。2 p c
:文字列 S の末尾に文字 a_{H,p} を追加する。その後、a_{1,p}=c,a_{2,p}=a_{1,p},a_{3,p}=a_{2,p},\dots,a_{H,p}=a_{H-1,p} と同時に更新する。
制約
- 1 \le H,W \le 2 \times 10^5
- 1 \le H \times W \le 2 \times 10^5
- 1 \le Q \le 2 \times 10^5
- H,W,Q は整数である。
- a_{i,j} は英小文字である。
- 各クエリは問題文に記した 2 種類の形式のいずれかである。
- タイプ 1 のクエリについて、1 \le p \le H であり、p は整数である。また、c は英小文字である。
- タイプ 2 のクエリについて、1 \le p \le W であり、p は整数である。また、c は英小文字である。
入力
入力は以下の形式で標準入力から与えられる。
H\ W\ Q a_{1,1}a_{1,2}\dots a_{1,W} a_{2,2}a_{2,2}\dots a_{2,W} \vdots a_{H,1}a_{H,2}\dots a_{H,W} \mathrm{query}_1 \mathrm{query}_2 \vdots \mathrm{query}_Q
また、各クエリは以下の形式で与えらえる。
t\ p\ c
ここで、1 \le t \le 2 かつ t は整数である。
出力
Q 個のクエリを入力で与えられる順番で処理した後の S を出力せよ。
入力例 1
2 2 2 ab cd 1 2 x 2 1 y
出力例 1
dx
グリッドは以下のように変化します。
ab cd
ab xc
yb ac
そして、S は dx
となります。よって dx
を出力します。
入力例 2
3 4 8 abcd defg ghij 1 2 a 1 2 b 1 2 c 1 2 d 2 3 x 2 3 y 2 3 y 2 3 y
出力例 2
gfedibcx
Score : 6 points
Problem Statement
We have a grid with H horizontal rows and W vertical columns. The square at the i-th row from the top and j-th column from the left has a lowercase English character a_{i,j} written on it. Additionally, we have an empty string S.
Process Q queries in the order given by the input, and print the resulting S after processing the Q queries.
Each query is of one of the following two kinds.
1 p c
:Append the character a_{p,W} to the tail of the string S. Then, set a_{p,1}=c,a_{p,2}=a_{p,1},a_{p,3}=a_{p,2},\dots,a_{p,W}=a_{p,W-1} simultaneously.2 p c
:Append the character a_{H,p} to the tail of the string S. Then, set a_{1,p}=c,a_{2,p}=a_{1,p},a_{3,p}=a_{2,p},\dots,a_{H,p}=a_{H-1,p} simultaneously.
Constraints
- 1 \le H,W \le 2 \times 10^5
- 1 \le H \times W \le 2 \times 10^5
- 1 \le Q \le 2 \times 10^5
- H, W, and Q are integers.
- a_{i,j} is a lowercase English character.
- Each query is in one of the two formats specified in the Problem Statement.
- For each query of type 1, 1 \le p \le H, p is an integer, and c is a lowercase English letter.
- For each query of type 2, 1 \le p \le W, p is an integer, and c is a lowercase English letter.
Input
Input is given from Standard Input in the following format:
H\ W\ Q a_{1,1}a_{1,2}\dots a_{1,W} a_{2,2}a_{2,2}\dots a_{2,W} \vdots a_{H,1}a_{H,2}\dots a_{H,W} \mathrm{query}_1 \mathrm{query}_2 \vdots \mathrm{query}_Q
Each query is given in the following format:
t\ p\ c
Here, 1 \le t \le 2, and t is an integer.
Output
Print the resulting S after processing the Q queries in the order given by the input.
Sample Input 1
2 2 2 ab cd 1 2 x 2 1 y
Sample Output 1
dx
The grid transitions as follows:
ab cd
ab xc
yb ac
S results in dx
, so dx
should be printed.
Sample Input 2
3 4 8 abcd defg ghij 1 2 a 1 2 b 1 2 c 1 2 d 2 3 x 2 3 y 2 3 y 2 3 y
Sample Output 2
gfedibcx
Time Limit: 4 sec / Memory Limit: 1024 MB
配点 : 6 点
問題文
0 以上 2^N 未満の数が書かれたボールが入った箱 A と箱 B があります。箱 A には i (0 \leq i \lt 2^N) が書かれたボールが A_i 個、箱 B には i (0 \leq i \lt 2^N) が書かれたボールが B_i 個入っています。すべてのボールは区別できます。
箱 A と箱 B からボールを 1 個ずつ取り出すことを考えます。取り出し方は (箱A に入っているボールの個数) \times (箱 B に入っているボールの個数) 通りありますが、そのうち次の条件を満たす取り出し方の数を f(x, y) とおきます。
- \mathrm{popcount}(x) を x を 2 進表記にしたときに出現する 1 の個数として定義する。
A から取り出したボールに書かれた数を a 、 B から取り出したボールに書かれた数を b とする。このとき、a と b のビットごとの論理和が x で、 \mathrm{popcount}(a) + \mathrm{popcount}(b) が y になっている。
長さ Q の数列 X,Y が与えられるので、すべての i (1 \leq i \leq Q) に対して f(X_i, Y_i) を 998244353 で割ったあまりを計算してください。
制約
- 1 \leq N \leq 17
- 1 \leq Q \leq 10^5
- 0 \leq A_i \lt 998244353 (0 \leq i \lt 2^N)
- 0 \leq B_i \lt 998244353 (0 \leq i \lt 2^N)
- 0 \leq X_i \lt 2^N (1 \leq i \leq Q)
- 0 \leq Y_i \leq 2N (1 \leq i \leq Q)
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
N Q A_0 A_1 \dots A_{2^N-1} B_0 B_1 \dots B_{2^N-1} X_1 Y_1 X_2 Y_2 \vdots X_Q Y_Q
出力
Q 行出力せよ。 i 行目には f(X_i,Y_i) \bmod{998244353} を出力せよ。
入力例 1
2 3 3 1 4 1 5 9 2 6 1 1 3 2 2 0
出力例 1
32 61 0
- x = 1, y = 1 となる (a,b) の組み合わせは (a,b) = (0, 1), (1, 0) です。よって答えは A_0 \times B_1 + A_1 \times B_0 = 32 となります。
- x = 3, y = 2 となる (a,b) の組み合わせは (a,b) = (0,3),(1,2),(2,1),(0,3) です。よって答えは A_0 \times B_3 + A_1 \times B_2 + A_2 \times B_1 + A_3 \times B_0 = 61 となります。
- x = 2, y = 0 となる (a,b) の組み合わせは存在しません。よって答えは 0 となります。
入力例 2
1 1 0 0 1 2 1 1
出力例 2
0
少なくとも片方の箱が空である場合もあります。
Score : 6 points
Problem Statement
There are two boxes A and B that contain balls with integers between 0 and 2^N-1 written on them. Box A contains A_i balls with the integer i (0 \leq i \lt 2^N), and Box B contains B_i balls with the integer i (0 \leq i \lt 2^N). All balls are distinguishable.
Consider picking up one ball from each of Box A and Box B. Among the (number of balls in Box A) \times (number of balls in Box B) ways to do so, let f(x, y) be the number of ones that satisfy the following condition.
- Here we denote by \mathrm{popcount}(x) the number of 1s in the binary notation of x.
Let a and b be the integers written on the balls from A and B, respectively. Then, the bitwise OR of a and b is x, and \mathrm{popcount}(a) + \mathrm{popcount}(b) is y.
You are given sequences X and Y of length Q each. Compute f(X_i, Y_i) modulo 998244353 for every i (1 \leq i \leq Q).
Constraints
- 1 \leq N \leq 17
- 1 \leq Q \leq 10^5
- 0 \leq A_i \lt 998244353 (0 \leq i \lt 2^N)
- 0 \leq B_i \lt 998244353 (0 \leq i \lt 2^N)
- 0 \leq X_i \lt 2^N (1 \leq i \leq Q)
- 0 \leq Y_i \leq 2N (1 \leq i \leq Q)
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N Q A_0 A_1 \dots A_{2^N-1} B_0 B_1 \dots B_{2^N-1} X_1 Y_1 X_2 Y_2 \vdots X_Q Y_Q
Output
Print Q lines. The i-th line should contain f(X_i,Y_i) \bmod{998244353}.
Sample Input 1
2 3 3 1 4 1 5 9 2 6 1 1 3 2 2 0
Sample Output 1
32 61 0
- For x = 1 and y = 1, the corresponding pairs (a, b) are (a,b) = (0, 1), (1, 0). Thus, the sought number is A_0 \times B_1 + A_1 \times B_0 = 32.
- For x = 3 and y = 2, the corresponding pairs (a, b) are (a,b) = (0,3),(1,2),(2,1),(0,3). Thus, the sought number is A_0 \times B_3 + A_1 \times B_2 + A_2 \times B_1 + A_3 \times B_0 = 61.
- For x = 2 and y = 0, there are no corresponding pairs (a, b). Thus, the sought number is 0.
Sample Input 2
1 1 0 0 1 2 1 1
Sample Output 2
0
One or more of the boxes may be empty.