タイトル効果:各データの組、及びクエリーQは、各クエリに対して、付加及びXの減算の任意の数とすることができるため、数がアレイに追加することができ、全ての加算及び減算の数が倍X、各クエリーQ、アレイの任意の数とすることができます最小の非負整数の最大数であり、存在しなくてもよいです。
アイデア:デジタル挿入の各アレイについて、加算と減算は、他の数、この数は、xを加算または減算することによって得ることができる、その、時間xの任意の数を実行することができるためには、その軸に等価であることにより、上記等距離プラスまたはマイナスxが相互に到達することができます。彼らをy%xによって要約することができたので。
そして、これは、配列ANSで最高値を見つけるには見えなかった記録たびは、もし[ANS%X]に基づいて、次のクエリの時に戻って探し始めることができます!=から直接ANS 0、 説明他の図は、xを加算または減算することによって、この位置に到達することができます。それが0に等しい場合、位置xが自然に可能最大電流状況である従来のデジタル減算によって到達することができません。(!= [ANS%X]を満たす場合 0 、それがこの位置に到達するA [ANS%X]を消費しなければなりません)。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxx = 4e5+10;
ll ans,q,x,y;
ll a[maxx];
int main ()
{
ios::sync_with_stdio(false);
cin>>q>>x;
ans = 0;
while(q--){
cin>>y;
a[y%x]++;
while(a[ans%x]){
a[ans%x]--;
ans++;
}
cout<<ans<<endl;
}
return 0;
}