配点 : 500 点
問題文
長さ N−1 の整数列 S=(S1,S2,…,SN−1) および、「ラッキーナンバー」として M 個の相異なる整数 X1,X2,…,XM が与えられます。
長さ N の整数列 A=(A1,A2,…,AN) であって、次の条件を満たすものを「良い数列」と呼びます。
すべての i=1,2,…,N−1 について、Ai+Ai+1=Si が成り立つ。
良い数列 A を 1 つ選ぶときの、A の要素のうちラッキーナンバーであるものの個数(すなわち、Ai∈{X1,X2,…,XM} となる 1 以上 N 以下の整数 i の個数)としてあり得る最大値を求めてください。
制約
- 2≤N≤105
- 1≤M≤10
- −109≤Si≤109
- −109≤Xi≤109
- X1<X2<⋯<XM
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N M
S1 S2 … SN−1
X1 X2 … XM
出力
良い数列 A を 1 つ選ぶときの、A の要素のうちラッキーナンバーであるものの個数としてありうる最大値を出力せよ。
9 2
2 3 3 4 -4 -7 -4 -1
-1 5
4
良い数列 A として A=(3,−1,4,−1,5,−9,2,−6,5) を選ぶと、A の要素のうちラッキーナンバーであるものは A2,A4,A5,A9 の 4 個となり、これが考えられる中で最大です。
20 10
-183260318 206417795 409343217 238245886 138964265 -415224774 -499400499 -313180261 283784093 498751662 668946791 965735441 382033304 177367159 31017484 27914238 757966050 878978971 73210901
-470019195 -379631053 -287722161 -231146414 -84796739 328710269 355719851 416979387 431167199 498905398
8