Submission #496036

#TimeUsernameProblemLanguageResultExecution timeMemory
496036asandikciSob (COCI19_sob)C++17
39 / 110
88 ms10064 KiB
#include"iostream" #include"vector" // #include"queue" // #include"deque" // #include"set" // #include"map" #include"algorithm" // #include"iomanip" #include"cstring" #include"cmath" #include"bitset" #define int long long using namespace std; const int maxn=2*1e6+5; void solve(){ int n,k; cin >> n >> k; int til = ceil(log2(n)); //+1 maybe // cout << til << "\n"; if(log2(n)==ceil(log2(n))){ int num; bitset<32> bt; vector<pair<int,int>> vec; for(int i=k;i<k+n;i++){ bt = i; num=0; for(int j=0;j<til;j++){ if(bt[j]==1){ num+=(1<<j); } } if(num==n){num=0;} vec.push_back({num,i}); // cout << num << "\n"; } sort(vec.begin(),vec.end()); for(auto it : vec){ cout << it.first << " " << it.second << "\n"; } } else if(log2(n+k)==ceil(log2(n+k))){ int num; bitset<32> bt; bool isactive[maxn]; vector<pair<int,int>> vec; for(int i=k;i<k+n;i++){ bt = i; num=0; for(int j=0;j<til;j++){ if(bt[j]==1){ num+=(1<<j); if(isactive[num]==0){ isactive[num]=1; break; } } } if(num==n){num=0;til--;} vec.push_back({num,i}); // cout << num << "\n"; } sort(vec.begin(),vec.end()); for(auto it : vec){ cout << it.first << " " << it.second << "\n"; } } else{ int num; bitset<32> bt; vector<pair<int,int>> vec; bool isactive[maxn]; for(int i=k;i<k+n;i++){ bt = i; num=0; for(int j=til-1;j>=0;j--){ if(bt[j]==1){ num+=(1<<j); if(isactive[num]==0){ isactive[num]=1; break; } } } vec.push_back({num,i}); // cout << num << "\n"; } sort(vec.begin(),vec.end()); for(auto it : vec){ cout << it.first << " " << it.second << "\n"; } } } signed main(){ // ios::sync_with_stdio(false); cin.tie(0); // freopen("","r",stdin);freopen("","w",stdout); int t=1; // cin >> t; for(int i=1;i<=t;i++){ // cout << "Case " << i << ":\n"; solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...