题目描述
長さが N2 の正整数列 A=(A1, A2, …, AN2) と正整数 S があります。この正整数列については正整数 i (1≤ i ≤ N2−N) に対し Ai=Ai+N が成り立ち、A1, A2, …, AN のみが入力で与えられます。
総和が S であるような任意の正整数列 B が正整数列 (A1, A2, …, AL) の(連続とは限らない)部分列となるような最小の整数 L を求めてください。
この問題の制約のもとでそのような L が 1 つ以上存在することが示せます。
输入格式
入力は以下の形式で標準入力から与えられます。
N S A1 A2 … AN
输出格式
答えを出力してください。
题目大意
有一个长度为 n2 的序列 {ai} 以及一个整数 sum。
对于 ∀i∈[1,n2−n],这个序列满足 ai=ai+n,在本题中只给出 n 个数 {a1,…,an}。
现在要求你找到一个最小的整数 p,使得所有满足 ∑ibi=sum 的序列 {bi} 是 {a1,…,ap} 的子序列。
6 4
1 1 2 1 4 3
9
14 5
1 1 1 2 3 1 2 4 5 1 1 2 3 1
11
19 10
1 6 2 7 4 8 5 9 1 10 4 1 3 1 3 2 2 2 1
39
提示
制約
- 1 ≤ N ≤ 1.5 × 106
- 1 ≤ S ≤ min(N,2 × 105)
- 1 ≤ Ai ≤ S
- 任意の正整数 x (1≤ x ≤ S) について、(A1, A2, …, AN) は x を 1 つ以上含む
- 入力される値はすべて整数
Sample Explanation 1
B として考えるべきなのは $ B=(1,\ 1,\ 1,\ 1),\ (1,\ 1,\ 2),\ (1,\ 2,\ 1),\ (1,\ 3),\ (2,\ 1,\ 1),\ (2,\ 2),\ (3,\ 1),\ (4) $ です。 例えば L=8 とすると B=(2, 2) は $ (A_1,A_2,\ \dots,\ A_8)=(1,\ 1,\ 2,\ 1,\ 4,\ 3,\ 1,\ 1) $ の部分列となりません。 一方で L=9 とするとすべての B が $ (A_1,A_2,\ \dots,\ A_9)=(1,\ 1,\ 2,\ 1,\ 4,\ 3,\ 1,\ 1,\ 2) $ の部分列となります。