제출 #65289

#제출 시각아이디문제언어결과실행 시간메모리
65289mhndUnscrambling a Messy Bug (IOI16_messy)C++17
0 / 100
2 ms384 KiB
#include "messy.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; const int N = 3e5+50; const ll oo = 1e18; const ll mod = 1e9+7; int n; vector<int> ans; string a; void add(int l,int r){ if(l > r)return; int md = (l+r)/2; string s = ""; for(int i=0;i<n;i++)s += '1'; for(int i=l;i<r;i++)s += '0'; for(int i=l;i<md;i++){ s[i] = '1'; add_element(s); s[i] = '0'; } add(l,md); add(md,r); } void ask(int l,int r,string s){ if(l > r){ for(int i=0;i<n;i++) if(s[i] == '0')ans[i] = l; return; } int md = (l+r)/2; string x=s,y=""; for(int i=0;i<n;i++)y+='1'; for(int i=0;i<n;i++){ if(s[i] == '0'){ s[i]='1'; if(check_element(s)){ x[i] = '1'; y[i] = '0'; } s[i]='0'; } } ask(l,md,y); ask(md,r,x); } vector<int> restore_permutation(int N, int w, int r) { int n = N; add(0,n); compile_set(); ans.resize(n); for(int i=0;i<n;i++)a += '0'; ask(0,n,a); return ans; }
#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...