# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
713065 | 2023-03-21T03:05:43 Z | lam | Unscrambling a Messy Bug (IOI16_messy) | C++14 | 0 ms | 0 KB |
#include <vector> #include "messy.h" using namespace std; inline bool checkbit(int i, int j) { return i>>j&1; } inline string tostring(int x, int n) { string s=""; for (int i=0; i<n; i++) { if (x%2==0) s+='0'; else s+='1'; x/=2; } return s; } vector<int> restore_permutation(int n, int w, int 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 <int> res(n); for (int mask=0; mask<(1<<n); mask++) { bool check = check_element(tostring(mask)); if (!check) continue; for (int j=0; j<n; j++) if (checkbit(mask,j)) res[j]++; } return res; }