# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
609776 | 2022-07-27T21:51:11 Z | sword060 | Unscrambling a Messy Bug (IOI16_messy) | C++17 | 0 ms | 0 KB |
#include "messy.h" #include <bits/stdc++.h> using namespace std; vector<int> restore_permutation(int x, int w, int r){ vector<int> ans(x); for(int i=0;i<x;i++)ans[i]=x-i; string p=""; for(int i=0;i<x;i++)p+='0'; for(int i=0;i<x/2;i++){ p[i]='1';p[i+x/2]='1'; add_element(p); p[i]='0';p[i+x/2]='0'; } compile_set(); for(int i=0;i<x;i++)p[i]='0'; for(int i=0;i<x/2;i++){ p[i]='1';p[i+x/2]='1'; bool f=check_element(p); if(f){p[i]='0';p[i+x/2]='0';continue;} p[i]='0'; for(int j=0;j<x;j++){ if(j==i+x/2)continue; p[j]='1'; bool f2=check_element(p); if(!f2){p[j]='0';continue;} swap(ans[i],ans[j]); return ans; } p[i]='1';p[i+x/2]='0'; for(int j=0;j<x;j++){ if(j==i)continue; p[j]='1'; bool f2=check_element(p); if(!f2){p[j]='0';continue;} swap(ans[i],ans[j]); return ans; } } }