Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 100 点
問題文
A
, B
, C
からなる長さ N の文字列 S が与えられます。
S の中で ABC
が(連続な)部分文字列として初めて現れる位置を答えてください。すなわち、以下の条件を全て満たす整数 n のうち最小のものを答えてください。
- 1 \leq n \leq N - 2
- S の n 文字目から n+2 文字目までを取り出して出来る文字列は
ABC
である。
ただし、ABC
が S に現れない場合は -1
を出力してください。
制約
- 3 \leq N \leq 100
- S は
A
,B
,C
からなる長さ N の文字列
入力
入力は以下の形式で標準入力から与えられる。
N S
出力
S の中で ABC
が部分文字列として初めて現れる位置を出力せよ。ただし、ABC
が S に現れない場合は -1
を出力せよ。
入力例 1
8 ABABCABC
出力例 1
3
S の中で ABC
が初めて現れるのは 3 文字目から 5 文字目までの位置です。よって 3 が答えになります。
入力例 2
3 ACB
出力例 2
-1
ABC
が S に現れない場合は -1 を出力してください。
入力例 3
20 BBAAABBACAACABCBABAB
出力例 3
13
Score : 100 points
Problem Statement
You are given a string S of length N consisting of A
, B
, and C
.
Find the position where ABC
first appears as a (contiguous) substring in S. In other words, find the smallest integer n that satisfies all of the following conditions.
- 1 \leq n \leq N - 2.
- The string obtained by extracting the n-th through (n+2)-th characters of S is
ABC
.
If ABC
does not appear in S, print -1
.
Constraints
- 3 \leq N \leq 100
- S is a string of length N consisting of
A
,B
, andC
.
Input
The input is given from Standard Input in the following format:
N S
Output
Print the position where ABC
first appears as a substring in S, or -1
if it does not appear in S.
Sample Input 1
8 ABABCABC
Sample Output 1
3
ABC
first appears in S at the 3-rd through 5-th characters of S. Therefore, the answer is 3.
Sample Input 2
3 ACB
Sample Output 2
-1
If ABC
does not appear in S, print -1.
Sample Input 3
20 BBAAABBACAACABCBABAB
Sample Output 3
13
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 200 点
問題文
英小文字からなる文字列 S, T が与えられます。S の長さは N、T の長さは M です。(N \leq M が制約で保証されています)
S が T の 接頭辞 であるとは、T のはじめ N 文字からなる文字列が S と一致することを言います。
S が T の 接尾辞 であるとは、T の後ろ N 文字からなる文字列が S と一致することを言います。
S が T の接頭辞であり、かつ接尾辞でもある場合は 0 を、
S が T の接頭辞であるが、接尾辞でない場合は 1 を、
S が T の接尾辞であるが、接頭辞でない場合は 2 を、
S が T の接頭辞でも接尾辞でもない場合は 3 を出力してください。
制約
- 1 \leq N \leq M \leq 100
- S は英小文字からなる長さ N の文字列
- T は英小文字からなる長さ M の文字列
入力
入力は以下の形式で標準入力から与えられる。
N M S T
出力
問題文の指示に従って答えを出力せよ。
入力例 1
3 7 abc abcdefg
出力例 1
1
S は T の接頭辞ですが接尾辞ではありません。よって 1 を出力します。
入力例 2
3 4 abc aabc
出力例 2
2
S は T の接尾辞ですが接頭辞ではありません。
入力例 3
3 3 abc xyz
出力例 3
3
S は T の接頭辞でも接尾辞でもありません。
入力例 4
3 3 aaa aaa
出力例 4
0
S と T が完全に一致する場合もあります。この場合、S は T の接頭辞であり、かつ接尾辞でもあります。
Score : 200 points
Problem Statement
You are given two strings S and T consisting of lowercase English letters. The lengths of S and T are N and M, respectively. (The constraints guarantee that N \leq M.)
S is said to be a prefix of T when the first N characters of T coincide S.
S is said to be a suffix of T when the last N characters of T coincide S.
If S is both a prefix and a suffix of T, print 0;
If S is a prefix of T but not a suffix, print 1;
If S is a suffix of T but not a prefix, print 2;
If S is neither a prefix nor a suffix of T, print 3.
Constraints
- 1 \leq N \leq M \leq 100
- S is a string of length N consisting of lowercase English letters.
- T is a string of length M consisting of lowercase English letters.
Input
The input is given from Standard Input in the following format:
N M S T
Output
Print the answer according to the instructions in the problem statement.
Sample Input 1
3 7 abc abcdefg
Sample Output 1
1
S is a prefix of T but not a suffix, so you should print 1.
Sample Input 2
3 4 abc aabc
Sample Output 2
2
S is a suffix of T but not a prefix.
Sample Input 3
3 3 abc xyz
Sample Output 3
3
S is neither a prefix nor a suffix of T.
Sample Input 4
3 3 aaa aaa
Sample Output 4
0
S and T may coincide, in which case S is both a prefix and a suffix of T.
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 250 点
問題文
AtCoder 王国では、これから N 日間のお祭りが開催されます。そのうち、A_1 日目、A_2 日目、\dots、A_M 日目の M 日では花火が上がります。ここで、お祭りの最終日には花火が上がることが保証されます。(つまり、A_M=N が保証されます。)
i=1,2,\dots,N に対して、以下の問題を解いてください。
- i 日目以降で初めて花火が上がるのは、i 日目から数えて何日後か?ただし、i 日目に花火が上がる場合 0 日後とする。
制約
- 1 \le M \le N \le 2 \times 10^5
- 1 \le A_1 < A_2 < \dots < A_M = N
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N M A_1 A_2 \dots A_M
出力
N 行出力せよ。
i(1 \le i \le N) 行目には、i 日目以降で初めて花火が上がるのは、i 日目から数えて何日後かを整数として出力せよ。
入力例 1
3 2 2 3
出力例 1
1 0 0
AtCoder 王国ではお祭りを 3 日間開催し、2,3 日目に花火が上がります。
- 1 日目以降で初めて花火が上がるのは 2 日目なので、1 日目から数えて 1 日後です。
- 2 日目以降で初めて花火が上がるのは 2 日目なので、2 日目から数えて 0 日後です。
- 3 日目以降で初めて花火が上がるのは 3 日目なので、3 日目から数えて 0 日後です。
入力例 2
8 5 1 3 4 7 8
出力例 2
0 1 0 0 2 1 0 0
Score : 250 points
Problem Statement
The AtCoder Kingdom holds a festival for N days. On M of these days, namely on the A_1-th, A_2-th, \dots, A_M-th days, fireworks will be launched. It is guaranteed that fireworks will be launched on the last day of the festival. (In other words, A_M=N is guaranteed.)
For each i=1,2,\dots,N, solve the following problem.
- How many days later from the i-th day will fireworks be launched for the first time on or after the i-th day? If fireworks are launched on the i-th day, it is considered to be 0 days later.
Constraints
- 1 \le M \le N \le 2 \times 10^5
- 1 \le A_1 < A_2 < \dots < A_M = N
- All input values are integers.
Input
The input is given from Standard Input in the following format:
N M A_1 A_2 \dots A_M
Output
Print N lines.
The i-th line (1 \le i \le N) should contain an integer representing the number of days from the i-th day until fireworks are launched for the first time on or after the i-th day.
Sample Input 1
3 2 2 3
Sample Output 1
1 0 0
The kingdom holds a festival for 3 days, and fireworks are launched on the 2-nd and 3-rd days.
- From the 1-st day, the first time fireworks are launched is the 2-nd day of the festival, which is 1 day later.
- From the 2-nd day, the first time fireworks are launched is the 2-nd day of the festival, which is 0 days later.
- From the 3-rd day, the first time fireworks are launched is the 3-rd day of the festival, which is 0 days later.
Sample Input 2
8 5 1 3 4 7 8
Sample Output 2
0 1 0 0 2 1 0 0
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 400 点
問題文
いくつかの正方形を辺でつなげてできる、連結な多角形の形をしたパズルのピースのことを ポリオミノ と呼びます。
縦 4 マス、横 4 マスのグリッドと、グリッドに収まる大きさの 3 個のポリオミノがあります。
i 番目のポリオミノの形は 16 個の文字 P_{i,j,k} (1 \leq j, k \leq 4) によって表されます。P_{i, j, k} は何も置かれていないグリッドに i 番目のポリオミノを置いたときの状態を意味して、P_{i, j, k} が #
の場合は上から j 行目、左から k 列目のマスにポリオミノが置かれていることを、.
の場合は置かれていないことを意味します。(入出力例 1 の図も参考にしてください。)
あなたは次の条件を全て満たすように 3 個のポリオミノ全てをグリッドに敷き詰めることにしました。
- グリッドの全てのマスはポリオミノで覆われている。
- ポリオミノ同士が重なるように置くことはできない。
- ポリオミノがグリッドからはみ出るように置くことはできない。
- ポリオミノの平行移動と回転は自由に行うことができるが、裏返すことはできない。
条件を満たすようにグリッドにポリオミノを敷き詰めることは可能ですか?
制約
- P_{i, j, k} は
#
または.
- 与えられるポリオミノは連結である。つまり、ポリオミノを構成する正方形同士は、正方形のみを上下左右に辿って互いに行き来できる
- 与えられるポリオミノは空でない
入力
入力は以下の形式で標準入力から与えられる。
P_{1,1,1}P_{1,1,2}P_{1,1,3}P_{1,1,4} P_{1,2,1}P_{1,2,2}P_{1,2,3}P_{1,2,4} P_{1,3,1}P_{1,3,2}P_{1,3,3}P_{1,3,4} P_{1,4,1}P_{1,4,2}P_{1,4,3}P_{1,4,4} P_{2,1,1}P_{2,1,2}P_{2,1,3}P_{2,1,4} P_{2,2,1}P_{2,2,2}P_{2,2,3}P_{2,2,4} P_{2,3,1}P_{2,3,2}P_{2,3,3}P_{2,3,4} P_{2,4,1}P_{2,4,2}P_{2,4,3}P_{2,4,4} P_{3,1,1}P_{3,1,2}P_{3,1,3}P_{3,1,4} P_{3,2,1}P_{3,2,2}P_{3,2,3}P_{3,2,4} P_{3,3,1}P_{3,3,2}P_{3,3,3}P_{3,3,4} P_{3,4,1}P_{3,4,2}P_{3,4,3}P_{3,4,4}
出力
問題文の条件を満たすようにポリオミノを敷き詰めることが可能である場合は Yes
を、そうでない場合は No
を出力せよ。
入力例 1
.... ###. .#.. .... .... .### .##. .... ..#. .##. .##. .##.
出力例 1
Yes
入力例 1 に対応するポリオミノの形は次の図のようになります。
この場合、次の図のようにポリオミノを配置することで、問題文の条件を満たすようにグリッドにポリオミノを敷き詰めることができます。
よって答えは Yes
になります。
入力例 2
###. #.#. ##.. .... .... ..#. .... .... #### ##.. #... #...
出力例 2
Yes
入力例 2 の 1 番目のポリオミノのように、ポリオミノは穴の空いた多角形の形をしている場合があります。
入力例 3
##.. #..# #### .... .... ##.. .##. .... .#.. .#.. .#.. .#..
出力例 3
No
ポリオミノを敷き詰めるときに、ポリオミノを裏返してはならないのに注意してください。
入力例 4
.... ..#. .... .... .... ..#. .... .... .... ..#. .... ....
出力例 4
No
入力例 5
.... #### #... #... .... #### ...# ..## .... ..## ..#. ..##
出力例 5
No
入力例 6
###. .##. ..#. .### .... ...# ..## ...# .... #... #... #...
出力例 6
Yes
Score : 400 points
Problem Statement
A polyomino is a puzzle piece in the shape of a connected polygon made by connecting several squares by their edges.
There is a grid with four rows and four columns, and three polyominoes that fit within the grid.
The shape of the i-th polyomino is represented by 16 characters P_{i,j,k} (1 \leq j, k \leq 4). They describe the state of the grid when the i-th polyomino is placed on it. If P_{i, j, k} is #
, the square at the j-th row from the top and k-th column from the left is occupied by the polyomino; if it is .
, the square is not occupied. (Refer to the figures at Sample Input/Output 1.)
You want to fill the grid with all three polyominoes so that all of the following conditions are satisfied.
- All squares of the grid are covered by the polyominoes.
- The polyominoes must not overlap each other.
- The polyominoes must not stick out of the grid.
- The polyominoes may be freely translated and rotated but may not be flipped over.
Can the grid be filled with the polyominoes to satisfy these conditions?
Constraints
- P_{i, j, k} is
#
or.
. - The given polyominoes are connected. In other words, the squares that make up a polyomino can be reached from each other by following only the squares up, down, left, and right.
- The given polyominoes are not empty.
Input
The input is given from Standard Input in the following format:
P_{1,1,1}P_{1,1,2}P_{1,1,3}P_{1,1,4} P_{1,2,1}P_{1,2,2}P_{1,2,3}P_{1,2,4} P_{1,3,1}P_{1,3,2}P_{1,3,3}P_{1,3,4} P_{1,4,1}P_{1,4,2}P_{1,4,3}P_{1,4,4} P_{2,1,1}P_{2,1,2}P_{2,1,3}P_{2,1,4} P_{2,2,1}P_{2,2,2}P_{2,2,3}P_{2,2,4} P_{2,3,1}P_{2,3,2}P_{2,3,3}P_{2,3,4} P_{2,4,1}P_{2,4,2}P_{2,4,3}P_{2,4,4} P_{3,1,1}P_{3,1,2}P_{3,1,3}P_{3,1,4} P_{3,2,1}P_{3,2,2}P_{3,2,3}P_{3,2,4} P_{3,3,1}P_{3,3,2}P_{3,3,3}P_{3,3,4} P_{3,4,1}P_{3,4,2}P_{3,4,3}P_{3,4,4}
Output
If it is possible to fill the grid with the polyominoes to satisfy the conditions in the problem statement, print Yes
; otherwise, print No
.
Sample Input 1
.... ###. .#.. .... .... .### .##. .... ..#. .##. .##. .##.
Sample Output 1
Yes
The figure below shows the shapes of the polyominoes corresponding to Sample Input 1.
In this case, you can fill the grid with them to satisfy the conditions in the problem statement by placing them as shown in the figure below.
Thus, the answer is Yes
.
Sample Input 2
###. #.#. ##.. .... .... ..#. .... .... #### ##.. #... #...
Sample Output 2
Yes
As in the first polyomino in Sample Input 2, a polyomino may be in the shape of a polygon with a hole.
Sample Input 3
##.. #..# #### .... .... ##.. .##. .... .#.. .#.. .#.. .#..
Sample Output 3
No
Note that the polyominoes may not be flipped over when filling the grid.
Sample Input 4
.... ..#. .... .... .... ..#. .... .... .... ..#. .... ....
Sample Output 4
No
Sample Input 5
.... #### #... #... .... #### ...# ..## .... ..## ..#. ..##
Sample Output 5
No
Sample Input 6
###. .##. ..#. .### .... ...# ..## ...# .... #... #... #...
Sample Output 6
Yes
Time Limit: 4 sec / Memory Limit: 1024 MB
配点 : 475 点
問題文
AtCoder 社はある商品の開発をしようとしています。この商品には K 個のパラメーターがあり、現段階ではすべてのパラメーターの値が 0 です。AtCoder 社の目標は、パラメーターの値を全て P 以上にすることです。
ここで、N 個の開発案があります。i(1 \le i \le N) 個目の開発案を実行すると、1 \le j \le K を満たす整数 j 全てに対して j 個目のパラメーターが A_{i,j} 上がりますが、この開発案を実行するにはコストが C_i かかります。
同じ開発案を 2 回以上実行することは出来ません。AtCoder 社が目標を達成出来るか判定し、出来る場合は目標を達成するのに必要なコストの総和の最小値を求めてください。
制約
- 1 \le N \le 100
- 1 \le K,P \le 5
- 0 \le A_{i,j} \le P(1 \le i \le N,1 \le j \le K)
- 1 \le C_i \le 10^9(1 \le i \le N)
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N K P C_1 A_{1,1} A_{1,2} \dots A_{1,K} C_2 A_{2,1} A_{2,2} \dots A_{2,K} \dots C_N A_{N,1} A_{N,2} \dots A_{N,K}
出力
AtCoder 社が目標を達成出来るならば目標を達成するのに必要なコストの総和の最小値を、出来ないならば -1
を出力せよ。
入力例 1
4 3 5 5 3 0 2 3 1 2 3 3 2 4 0 1 0 1 4
出力例 1
9
1 個目と 3 個目と 4 個目の開発案を実行すると、それぞれのパラメーターが 3+2+0=5,0+4+1=5,2+0+4=6 で全て 5 以上となるため目標を達成できます。この場合コストの総和は 5 + 3 + 1 = 9 となります。
コストの総和 8 以下で目標を達成することは出来ません。よって答えは 9 です。
入力例 2
7 3 5 85 1 0 1 37 1 1 0 38 2 0 0 45 0 2 2 67 1 1 0 12 2 2 0 94 2 2 1
出力例 2
-1
どのようにしても目標を達成することは出来ません。よって -1
を出力します。
Score : 475 points
Problem Statement
AtCoder Inc. is planning to develop a product. The product has K parameters, whose values are currently all zero. The company aims to raise all parameter values to at least P.
There are N development plans. Executing the i-th development plan (1 \le i \le N) increases the value of the j-th parameter by A_{i,j} for every integer j such that 1 \le j \le K, at the cost of C_i.
A development plan cannot be executed more than once. Determine whether the company can achieve its goal, and if it can, find the minimum total cost required to achieve the goal.
Constraints
- 1 \le N \le 100
- 1 \le K,P \le 5
- 0 \le A_{i,j} \le P(1 \le i \le N,1 \le j \le K)
- 1 \le C_i \le 10^9(1 \le i \le N)
- All input values are integers.
Input
The input is given from Standard Input in the following format:
N K P C_1 A_{1,1} A_{1,2} \dots A_{1,K} C_2 A_{2,1} A_{2,2} \dots A_{2,K} \dots C_N A_{N,1} A_{N,2} \dots A_{N,K}
Output
If AtCoder Inc. can achieve its goal, print the minimum total cost required to achieve the goal; otherwise, print -1
.
Sample Input 1
4 3 5 5 3 0 2 3 1 2 3 3 2 4 0 1 0 1 4
Sample Output 1
9
If you execute the first, third, and fourth development plans, each parameter will be 3+2+0=5,0+4+1=5,2+0+4=6, all of which are at least 5, so the goal is achieved. The total cost in this case is 5 + 3 + 1 = 9.
It is impossible to achieve the goal at a total cost of 8 or less. Thus, the answer is 9.
Sample Input 2
7 3 5 85 1 0 1 37 1 1 0 38 2 0 0 45 0 2 2 67 1 1 0 12 2 2 0 94 2 2 1
Sample Output 2
-1
You cannot achieve the goal no matter what you do. Thus, print -1
.
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 550 点
問題文
0
, 1
からなる長さ N の文字列 S が与えられます。S の i 文字目を S_i とします。
Q 個のクエリを与えられた順に処理してください。
クエリは 3 個の整数の組 (c, L, R) で表されて、c の値によってクエリの種類が異なります。
- c=1 のとき : L \leq i \leq R を満たす整数 i について、S_i が
1
ならば0
に、0
ならば1
に変更する。 - c=2 のとき : S の L 文字目から R 文字目までを取り出して出来る文字列を T とする。T に含まれる連続する
1
の長さの最大値を出力する。
制約
- 1 \leq N \leq 5 \times 10^5
- 1 \leq Q \leq 10^5
- S は長さ N の
0
,1
からなる文字列 - c \in \lbrace 1, 2 \rbrace
- 1 \leq L \leq R \leq N
- N, Q, c, L, R は全て整数
入力
入力は以下の形式で標準入力から与えられる。ここで \mathrm{query}_i は i 番目のクエリを意味する。
N Q S \mathrm{query}_1 \mathrm{query}_2 \vdots \mathrm{query}_Q
各クエリは次の形式で与えられる。
c L R
出力
c=2 であるクエリの個数を k として、k 行出力せよ。
i 行目には i 番目の c=2 であるクエリに対する答えを出力せよ。
入力例 1
7 6 1101110 2 1 7 2 2 4 1 3 6 2 5 6 1 4 7 2 1 7
出力例 1
3 1 0 7
クエリを順に処理すると次のようになります。
- はじめ、S=
1101110
です。 - 1 番目のクエリについて、T =
1101110
です。T に含まれる連続する1
の中で最も長いものは、T の 4 文字目から 6 文字目からなる111
なので、答えは 3 になります。 - 2 番目のクエリについて、T =
101
です。T に含まれる連続する1
の中で最も長いものは、T の 1 文字目あるいは 3 文字目の1
なので、答えは 1 になります。 - 3 番目のクエリについて、操作後の S は
1110000
です。 - 4 番目のクエリについて、T =
00
です。T に1
は含まれないので答えは 0 になります。 - 5 番目のクエリについて、操作後の S は
1111111
です。 - 6 番目のクエリについて、T =
1111111
です。T に含まれる連続する1
の中で最も長いものは、T の 1 文字目から 7 文字目からなる1111111
なので、答えは 7 になります。
Score : 550 points
Problem Statement
You are given a string S of length N consisting of 0
and 1
. Let S_i denote the i-th character of S.
Process Q queries in the order they are given.
Each query is represented by a tuple of three integers (c, L, R), where c represents the type of the query.
- When c=1: For each integer i such that L \leq i \leq R, if S_i is
1
, change it to0
; if it is0
, change it to1
. - When c=2: Let T be the string obtained by extracting the L-th through R-th characters of S. Print the maximum number of consecutive
1
s in T.
Constraints
- 1 \leq N \leq 5 \times 10^5
- 1 \leq Q \leq 10^5
- S is a string of length N consisting of
0
and1
. - c \in \lbrace 1, 2 \rbrace
- 1 \leq L \leq R \leq N
- N, Q, c, L, and R are all integers.
Input
The input is given from Standard Input in the following format, where \mathrm{query}_i represents the i-th query:
N Q S \mathrm{query}_1 \mathrm{query}_2 \vdots \mathrm{query}_Q
Each query is given in the following format:
c L R
Output
Let k be the number of queries with c=2. Print k lines.
The i-th line should contain the answer to the i-th query with c=2.
Sample Input 1
7 6 1101110 2 1 7 2 2 4 1 3 6 2 5 6 1 4 7 2 1 7
Sample Output 1
3 1 0 7
The queries are processed as follows.
- Initially, S=
1101110
. - For the first query, T =
1101110
. The longest sequence of consecutive1
s in T is111
from the 4-th character to 6-th character, so the answer is 3. - For the second query, T =
101
. The longest sequence of consecutive1
s in T is1
at the 1-st or 3-rd character, so the answer is 1. - For the third query, the operation changes S to
1110000
. - For the fourth query, T =
00
. T does not contain1
, so the answer is 0. - For the fifth query, the operation changes S to
1111111
. - For the sixth query, T =
1111111
. The longest sequence of consecutive1
s in T is1111111
from the 1-st to 7-th characters, so the answer is 7.
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 600 点
問題文
非負整数列 S=(S_1,S_2,\dots,S_k) と整数 a に対して、以下のように関数 f(S,a) を定義します。
- f(S,a) = \sum_{i=1}^{k} S_i \times a^{k - i}
例えば、f((1,2,3),4) = 1 \times 4^2 + 2 \times 4^1 + 3 \times 4^0 = 27,f((1,1,1,1),10) = 1 \times 10^3 + 1 \times 10^2 + 1 \times 10^1 + 1 \times 10^0 = 1111 です。
正整数 N,X が与えられます。以下の条件を全て満たす非負整数列 S=(S_1,S_2,\dots,S_k) と正整数 a,b の組 (S,a,b) の個数を 998244353 で割ったあまりを求めてください。
- k \ge 1
- a,b \le N
- S_1 \neq 0
- S_i < \min(10,a,b)(1 \le i \le k)
- f(S,a) - f(S,b) = X
制約
- 1 \le N \le 10^9
- 1 \le X \le 2 \times 10^5
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N X
出力
条件を満たす非負整数列 S と正整数 a,b の組 (S,a,b) の個数を 998244353 で割ったあまりを出力せよ。
入力例 1
4 2
出力例 1
5
(S,a,b)=((1,0),4,2),((1,1),4,2),((2,0),4,3),((2,1),4,3),((2,2),4,3) の 5 通りが条件を満たします。
入力例 2
9 30
出力例 2
31
入力例 3
322322322 200000
出力例 3
140058961
Score : 600 points
Problem Statement
For a non-negative integer sequence S=(S_1,S_2,\dots,S_k) and an integer a, we define the function f(S,a) as follows:
- f(S,a) = \sum_{i=1}^{k} S_i \times a^{k - i}.
For example, f((1,2,3),4) = 1 \times 4^2 + 2 \times 4^1 + 3 \times 4^0 = 27, and f((1,1,1,1),10) = 1 \times 10^3 + 1 \times 10^2 + 1 \times 10^1 + 1 \times 10^0 = 1111.
You are given positive integers N and X. Find the number, modulo 998244353, of triples (S,a,b) of a sequence of non-negative integers S=(S_1,S_2,\dots,S_k) and positive integers a and b that satisfy all of the following conditions.
- k \ge 1
- a,b \le N
- S_1 \neq 0
- S_i < \min(10,a,b)(1 \le i \le k)
- f(S,a) - f(S,b) = X
Constraints
- 1 \le N \le 10^9
- 1 \le X \le 2 \times 10^5
- All input values are integers.
Input
The input is given from Standard Input in the following format:
N X
Output
Print the number, modulo 998244353, of triples (S,a,b) of a sequence of non-negative integers S=(S_1,S_2,\dots,S_k) and positive integers a and b that satisfy the conditions.
Sample Input 1
4 2
Sample Output 1
5
The five triples (S,a,b)=((1,0),4,2),((1,1),4,2),((2,0),4,3),((2,1),4,3),((2,2),4,3) satisfy the conditions.
Sample Input 2
9 30
Sample Output 2
31
Sample Input 3
322322322 200000
Sample Output 3
140058961