// Przyk艂adowe niepoprawne rozwi膮zanie do zadania Dzielniki. #include "dzilib.h" #include<set> #include<map> #include<queue> #include<vector> #include<algorithm> #include<bits/stdc++.h> #define pr pair #define f first #define s second #define ll long long #define mp make_pair #define pll pr<ll,ll> #define pii pr<int,int> #define piii pr<int,pii> using namespace std; ll c,n; const int hl[16]={1,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53}; //void Answer(ll x) //{ // cout<<"Answer "<<x<<endl; //} //ll sx; //void ax() //{ // cin>>sx; //} //ll Ask(ll x) //{ //// cout<<"Ask "<<x<<' '; // x+=sx; // ll rt=0; // for(ll i=1;i*i<=x;i++) // { // if(x%i==0) // { // rt++; // if(x/i>i) rt++; // } // } //// cout<<rt<<endl; // return rt; //} void sl() { // ax(); ll cm=1,cz=0; for(int i=1;i<16;i++) { if(cm>n) break; int df=hl[i]-hl[i-1]; vector<ll> ps; for(int j=1;j<=2<<df;j++) { if(Ask(j*cm+cz)%hl[i]==0) { ps.push_back(j*cm+cz); } } cm<<=df; vector<ll> np; int g=0; while(ps.size()>1) { np.clear(); g++; for(ll x:ps) { if(Ask(x+cm*2*g)%hl[i]==0) { np.push_back(x); } } ps=np; } cz=ps[0]; // cout<<"Fn "<<cm<<' '<<n<<endl; } Answer(cm-cz%cm); } //int GetT() //{ // int x; // cin>>x; // return x; //} //int GetQ() //{ // int x; // cin>>x; // return x; //} //ll GetC() //{ // ll x; // cin>>x; // return x; //} //ll GetN() //{ // ll x; // cin>>x; // return x; //} int main() { int t = GetT(); n = GetN(); int q = GetQ(); c = GetC(); while(t--) sl(); 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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | // Przyk艂adowe niepoprawne rozwi膮zanie do zadania Dzielniki. #include "dzilib.h" #include<set> #include<map> #include<queue> #include<vector> #include<algorithm> #include<bits/stdc++.h> #define pr pair #define f first #define s second #define ll long long #define mp make_pair #define pll pr<ll,ll> #define pii pr<int,int> #define piii pr<int,pii> using namespace std; ll c,n; const int hl[16]={1,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53}; //void Answer(ll x) //{ // cout<<"Answer "<<x<<endl; //} //ll sx; //void ax() //{ // cin>>sx; //} //ll Ask(ll x) //{ //// cout<<"Ask "<<x<<' '; // x+=sx; // ll rt=0; // for(ll i=1;i*i<=x;i++) // { // if(x%i==0) // { // rt++; // if(x/i>i) rt++; // } // } //// cout<<rt<<endl; // return rt; //} void sl() { // ax(); ll cm=1,cz=0; for(int i=1;i<16;i++) { if(cm>n) break; int df=hl[i]-hl[i-1]; vector<ll> ps; for(int j=1;j<=2<<df;j++) { if(Ask(j*cm+cz)%hl[i]==0) { ps.push_back(j*cm+cz); } } cm<<=df; vector<ll> np; int g=0; while(ps.size()>1) { np.clear(); g++; for(ll x:ps) { if(Ask(x+cm*2*g)%hl[i]==0) { np.push_back(x); } } ps=np; } cz=ps[0]; // cout<<"Fn "<<cm<<' '<<n<<endl; } Answer(cm-cz%cm); } //int GetT() //{ // int x; // cin>>x; // return x; //} //int GetQ() //{ // int x; // cin>>x; // return x; //} //ll GetC() //{ // ll x; // cin>>x; // return x; //} //ll GetN() //{ // ll x; // cin>>x; // return x; //} int main() { int t = GetT(); n = GetN(); int q = GetQ(); c = GetC(); while(t--) sl(); return 0; } |