#include "dzilib.h" #include <bits/stdc++.h> using namespace std; using ll = long long; #define FOR(i,a,b) for(ll i=a; i<=b; ++i) #define FORR(i,a,b) for(ll i=a; i>=b; --i) constexpr int MAX_Q=5e4+14; ll qtT, maxQ, maxN, maxC, cQ, nextt[MAX_Q]; ll GetQtDiv(ll cV){ ll res=1, cQt, cDiv=1; while(cV!=1){ cQt=1, ++cDiv; while(cV%cDiv==0) ++cQt, cV/=cDiv; res*=cQt; } return res; } int main() { ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); qtT = GetT(); maxQ = GetQ(); maxN = GetN(); maxC = GetC(); cQ=maxQ/qtT; FOR(tt, 1, qtT){ FOR(nV,0,cQ-1) nextt[nV]=(ll)Ask(nV); FOR(cV,1,maxN){ jump: FOR(nV,0,cQ-1) { if(GetQtDiv(cV+nV)!=nextt[nV]){ ++cV; goto jump; } } Answer(cV); break; } } 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 | #include "dzilib.h" #include <bits/stdc++.h> using namespace std; using ll = long long; #define FOR(i,a,b) for(ll i=a; i<=b; ++i) #define FORR(i,a,b) for(ll i=a; i>=b; --i) constexpr int MAX_Q=5e4+14; ll qtT, maxQ, maxN, maxC, cQ, nextt[MAX_Q]; ll GetQtDiv(ll cV){ ll res=1, cQt, cDiv=1; while(cV!=1){ cQt=1, ++cDiv; while(cV%cDiv==0) ++cQt, cV/=cDiv; res*=cQt; } return res; } int main() { ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); qtT = GetT(); maxQ = GetQ(); maxN = GetN(); maxC = GetC(); cQ=maxQ/qtT; FOR(tt, 1, qtT){ FOR(nV,0,cQ-1) nextt[nV]=(ll)Ask(nV); FOR(cV,1,maxN){ jump: FOR(nV,0,cQ-1) { if(GetQtDiv(cV+nV)!=nextt[nV]){ ++cV; goto jump; } } Answer(cV); break; } } return 0; } |