Lucky 7 Sequence

2 secs 1024 MB
sten's icon sten

問題文

数列 A=(A1,A2,,AN)A = (A_1, A_2, \dots, A_N)、数列 P=(P1,P2,,PQ)P = (P_1, P_2, \dots, P_Q)、数列 J=(J1,J2,,JQ)J = (J_1, J_2, \dots, J_Q) が与えられます。

ii (1iN1 \leq i \leq N) について以下のどちらかの条件を満たす数列を 良い数列 と言います。

  • 数列の ii 項目が +Ai+A_i と等しい。
  • 数列の ii 項目が Ai-A_i と等しい。

また、ある良い数列の 美しさ を以下の条件を満たす jj (1jQ1 \leq j \leq Q) の個数とします。

  • 良い数列を BB とした時、B1+B2++BPjB_1 + B_2 + \dots + B_{P_j}77 で割った余りが JjJ_j と等しい。

あり得る良い数列の美しさの最大値を求めてください。

制約

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1QN1 \leq Q \leq N
  • 0Ai1090 \leq A_i \leq 10^9
  • 1P1<P2<<PQN1 \leq P_1 < P_2 < \dots < P_Q \leq N
  • 0Jj<70 \leq J_j < 7
  • 入力はすべて整数

入力

N Q
A1 A2 ... AN
P1 P2 ... PQ
J1 J2 ... JQ

出力

あり得る良い数列の美しさの最大値を出力してください。

サンプル

入力1
4 4
1 3 2 5 
1 2 3 4 
5 1 5 0 
出力1
2

美しさが 22 である良い数列として (1,3,+2,5)(-1, -3, +2, -5) が考えられます。
左から累積和を取ると (6,3,5,0)(6, 3, 5, 0) となり、JJ22 つの要素が一致している (美しさが 22 である) ことが分かります。
これより美しさが大きい数列は存在しないため、22 を出力します。


入力2
4 3
6 3 1 0 
1 2 3 
1 6 4 
出力2
2

美しさが 22 である良い数列は例えば (6,3,1,0)(-6, -3, -1, -0) です。


入力3
14 8
4 4 2 6 0 1 3 4 5 6 2 2 6 2 
1 2 4 6 7 8 9 12 
6 5 1 0 5 3 6 3 
出力3
4

Submit


Go (1.21)