#include <bits/stdc++.h> #include "dzilib.h" using namespace std; /*auto GetT() { long long int n; cin>>n; return n; } auto GetN() { long long int n; cin>>n; return n; } long long int Ask(long long int c) { cout<<"ile dziel ma n+"<<c<<"\n"; long long int n; cin>>n; return n; } void Answer(long long int n) { cout<<n<<"\n"; }*/ int main() { long long int n=GetN(); vector<int>t(n+1001); for(int i=1; i<=n+1000; i++) for(int j=i; j<=n+1000; j+=i) t[j]++; vector<vector<long long int>>inv(n+1); for(int i=1; i<=n; i++) inv[t[i]].push_back(i); long long int t1=GetT(); for(int i=0; i<t1; i++) { long long int sus=Ask(0); auto kan=inv[sus]; int j=0; while(kan.size()!=1) { j++; vector<long long int>kan1; long long int sus1=Ask(j); for(auto x:kan) { if(t[x+j]==sus1) kan1.push_back(x); } kan=kan1; } Answer(kan[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 | #include <bits/stdc++.h> #include "dzilib.h" using namespace std; /*auto GetT() { long long int n; cin>>n; return n; } auto GetN() { long long int n; cin>>n; return n; } long long int Ask(long long int c) { cout<<"ile dziel ma n+"<<c<<"\n"; long long int n; cin>>n; return n; } void Answer(long long int n) { cout<<n<<"\n"; }*/ int main() { long long int n=GetN(); vector<int>t(n+1001); for(int i=1; i<=n+1000; i++) for(int j=i; j<=n+1000; j+=i) t[j]++; vector<vector<long long int>>inv(n+1); for(int i=1; i<=n; i++) inv[t[i]].push_back(i); long long int t1=GetT(); for(int i=0; i<t1; i++) { long long int sus=Ask(0); auto kan=inv[sus]; int j=0; while(kan.size()!=1) { j++; vector<long long int>kan1; long long int sus1=Ask(j); for(auto x:kan) { if(t[x+j]==sus1) kan1.push_back(x); } kan=kan1; } Answer(kan[0]); } } |