#include <bits/stdc++.h>
using namespace std;
vector<int> zn(int n) {
long long limit = n / 2;
vector<int> pierwsze;
if (limit < 2) {
return pierwsze;
}
vector<bool> czy_pierwsza(limit + 1, true);
czy_pierwsza[0] = czy_pierwsza[1] = false;
for (long long p = 2; p * p <= limit; p++) {
if (czy_pierwsza[p]) {
for (long long i = p * p; i <= limit; i += p)
czy_pierwsza[i] = false;
}
}
for (long long p = 2; p <= limit; p++) {
if (czy_pierwsza[p]) {
pierwsze.push_back(static_cast<int>(p));
}
}
return pierwsze;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n,q;
cin>>n>>q;
vector<int>tab=zn(n);
vector<bool>tab1(n+1,false);
for(int i=0;i<q;i++){
int a;
cin>>a;
if(tab1[a]==true){
tab1[a]=false;
}
else{ tab1[a]=true;}
int suma=0;
for(int j=0;j<tab.size();j++){
int b=tab[j];
vector<int>tab2(b,0);
for(int k=1;k<=n;k++){
if(tab1[k]){
int r=k%b;
tab2[r]++;
suma=max(suma,tab2[r]);
}
}
}
cout<<suma<<"\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 | #include <bits/stdc++.h> using namespace std; vector<int> zn(int n) { long long limit = n / 2; vector<int> pierwsze; if (limit < 2) { return pierwsze; } vector<bool> czy_pierwsza(limit + 1, true); czy_pierwsza[0] = czy_pierwsza[1] = false; for (long long p = 2; p * p <= limit; p++) { if (czy_pierwsza[p]) { for (long long i = p * p; i <= limit; i += p) czy_pierwsza[i] = false; } } for (long long p = 2; p <= limit; p++) { if (czy_pierwsza[p]) { pierwsze.push_back(static_cast<int>(p)); } } return pierwsze; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n,q; cin>>n>>q; vector<int>tab=zn(n); vector<bool>tab1(n+1,false); for(int i=0;i<q;i++){ int a; cin>>a; if(tab1[a]==true){ tab1[a]=false; } else{ tab1[a]=true;} int suma=0; for(int j=0;j<tab.size();j++){ int b=tab[j]; vector<int>tab2(b,0); for(int k=1;k<=n;k++){ if(tab1[k]){ int r=k%b; tab2[r]++; suma=max(suma,tab2[r]); } } } cout<<suma<<"\n"; } return 0; } |
English