Submission #713082

#TimeUsernameProblemLanguageResultExecution timeMemory
713082lamUnscrambling a Messy Bug (IOI16_messy)C++17
38 / 100
3 ms340 KiB
#include <bits/stdc++.h> #define ll long long #include "messy.h" using namespace std; inline bool checkbit(ll i, int j) { return i>>j&1; } inline string tostring(ll x, int n) { string s=""; for (int i=0; i<n; i++) { if (x%2LL==0) s+='0'; else s+='1'; x/=2LL; } return s; } vector<int32_t> restore_permutation(int32_t n, int32_t w, int32_t r) { string s=""; for (int i=0; i<n; i++) s+='0'; for (int i=n-1; i>=1; i--) { s[i] = '1'; add_element(s); } compile_set(); vector <int32_t> res(n); ll mask = 0LL; for (int it=0; it<n-1; it++) { vector <int> tmp; for (int j=0; j<n; j++) if (!checkbit(mask,j)) tmp.push_back(j); random_shuffle(tmp.begin(),tmp.end()); random_shuffle(tmp.begin(),tmp.end()); random_shuffle(tmp.begin(),tmp.end()); random_shuffle(tmp.begin(),tmp.end()); for (int j:tmp) { mask^=(1LL<<j); bool check = check_element(tostring(mask,n)); if (!check) { mask^=(1LL<<j); continue; } for (int j=0; j<n; j++) if (checkbit(mask,j)) res[j]++; break; } } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...