#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define st first
#define nd second
#define pb push_back
#define pii pair<int,int>
#define pll pair<ll,ll>
const int maxn = 1e7+7;
bool czy[maxn];
vector<int> zamalowane;
vector<int> zamalowane2;
int licz[maxn];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n,q;
cin>>n>>q;
int a,ile = 0,kon,ans,ind,ilep=0,ilenp=0,conaj;
vector<int> akt;
for(int i=1;i<=q;i++){
cin>>a;
if(!czy[a]){
czy[a] = 1;
zamalowane.pb(a);
ile++;
if(a%2==0)
ilep++;
else
ilenp++;
}
else{
czy[a] = 0;
for(auto j : zamalowane){
if(j != a)
zamalowane2.pb(j);
}
zamalowane = zamalowane2;
zamalowane2.clear();
ile--;
if(a%2==0)
ilep--;
else
ilenp--;
}
if(ile == 0){
cout<<0<<"\n";
continue;
}
conaj = max(ilep,ilenp);
kon = (n-1)/(max((int)1,conaj-1));
ans = conaj;
for(int j=2;j<=kon;j++){
akt.clear();
for(auto x : zamalowane){
ind = x%j;
licz[ind]++;
if(licz[ind] == 1)
akt.pb(ind);
}
for(auto x : akt){
ans = max(ans,licz[x]);
licz[x] = 0;
}
}
cout<<ans<<"\n";
}
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | #include <bits/stdc++.h> using namespace std; typedef long long ll; #define st first #define nd second #define pb push_back #define pii pair<int,int> #define pll pair<ll,ll> const int maxn = 1e7+7; bool czy[maxn]; vector<int> zamalowane; vector<int> zamalowane2; int licz[maxn]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n,q; cin>>n>>q; int a,ile = 0,kon,ans,ind,ilep=0,ilenp=0,conaj; vector<int> akt; for(int i=1;i<=q;i++){ cin>>a; if(!czy[a]){ czy[a] = 1; zamalowane.pb(a); ile++; if(a%2==0) ilep++; else ilenp++; } else{ czy[a] = 0; for(auto j : zamalowane){ if(j != a) zamalowane2.pb(j); } zamalowane = zamalowane2; zamalowane2.clear(); ile--; if(a%2==0) ilep--; else ilenp--; } if(ile == 0){ cout<<0<<"\n"; continue; } conaj = max(ilep,ilenp); kon = (n-1)/(max((int)1,conaj-1)); ans = conaj; for(int j=2;j<=kon;j++){ akt.clear(); for(auto x : zamalowane){ ind = x%j; licz[ind]++; if(licz[ind] == 1) akt.pb(ind); } for(auto x : akt){ ans = max(ans,licz[x]); licz[x] = 0; } } cout<<ans<<"\n"; } return 0; } |
English