atcoder#ABC255E. [ABC255E] Lucky Numbers

[ABC255E] Lucky Numbers

题目描述

長さ N1 N-1 の整数列 S = (S1, S2, , SN1) S\ =\ (S_1,\ S_2,\ \ldots,\ S_{N-1}) および、「ラッキーナンバー」として M M 個の相異なる整数 X1, X2, , XM X_1,\ X_2,\ \ldots,\ X_M が与えられます。

長さ N N の整数列 A = (A1, A2, , AN) A\ =\ (A_1,\ A_2,\ \ldots,\ A_N) であって、次の条件を満たすものを「良い数列」と呼びます。

すべての i = 1, 2, , N1 i\ =\ 1,\ 2,\ \ldots,\ N-1 について、Ai + Ai+1 = Si A_i\ +\ A_{i+1}\ =\ S_i が成り立つ。

良い数列 A A 1 1 つ選ぶときの、A A の要素のうちラッキーナンバーであるものの個数(すなわち、$ A_i\ \in\ \lbrace\ X_1,\ X_2,\ \ldots,\ X_M\ \rbrace $ となる 1 1 以上 N N 以下の整数 i i の個数)としてあり得る最大値を求めてください。

输入格式

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

N N M M S1 S_1 S2 S_2 \ldots SN1 S_{N-1} X1 X_1 X2 X_2 \ldots XM X_M

输出格式

良い数列 A A 1 1 つ選ぶときの、A A の要素のうちラッキーナンバーであるものの個数としてありうる最大値を出力せよ。

题目大意

给定长度为 n1 n - 1 的序列 S S ,存在序列 an a_n 满足 ai+ai+1=Si a_i + a_{i + 1} = S_i ,给定 m m 个幸运数字 x1,x2,,xm x_1, x_2, \cdots, x_m 。你需要确定一个合法序列 a a 使其中有最多的数字为幸运数字,求最大值。

9 2
2 3 3 4 -4 -7 -4 -1
-1 5
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

提示

制約

  • 2  N  105 2\ \leq\ N\ \leq\ 10^5
  • 1  M  10 1\ \leq\ M\ \leq\ 10
  • 109  Si  109 -10^9\ \leq\ S_i\ \leq\ 10^9
  • 109  Xi  109 -10^9\ \leq\ X_i\ \leq\ 10^9
  • X1 < X2 <  < XM X_1\ \lt\ X_2\ \lt\ \cdots\ \lt\ X_M
  • 入力はすべて整数

Sample Explanation 1

良い数列 A A として A = (3, 1, 4, 1, 5, 9, 2, 6, 5) A\ =\ (3,\ -1,\ 4,\ -1,\ 5,\ -9,\ 2,\ -6,\ 5) を選ぶと、A A の要素のうちラッキーナンバーであるものは A2, A4, A5, A9 A_2,\ A_4,\ A_5,\ A_9 4 4 個となり、これが考えられる中で最大です。