Submission #1246711

#TimeUsernameProblemLanguageResultExecution timeMemory
1246711Saul0906Unscrambling a Messy Bug (IOI16_messy)C++20
70 / 100
1 ms584 KiB
#include "messy.h" #include <bits/stdc++.h> #include <cstdlib> #define pii pair<int, int> #define rep(a,b,c) for(int a=b; a<c; a++) #define repr(a,b,c) for(int a=b-1; a>c-1; a--) #define repa(a,b) for(auto a:b) #define fi first #define se second #define all(a) a.begin(), a.end() #define mid ((l+r)>>1) #define pb push_back using namespace std; using vi = vector<int>; int N, x; vi p; string s; void add_tree(int l, int r){ if(l==r) return; rep(i,l,r+1) s[i]='0'; rep(i,l,mid+1){ s[i]='1'; add_element(s); s[i]='0'; } rep(i,l,r+1) s[i]='1'; add_tree(l,mid); add_tree(mid+1,r); } void init(){ s.resize(N); rep(i,0,N) s[i]='1'; s[N-1]='0'; add_element(s); add_tree(0,N-2); compile_set(); } int find_n(){ rep(i,0,N) s[i]='1'; rep(e,0,N){ s[e]='0'; if(check_element(s)) return e; s[e]='1'; } } void solve(int l, int r){ if(l==r) return; rep(i,l,r+1) s[p[i]]='0'; vi vl, vr; rep(i,l,r+1){ s[p[i]]='1'; if(check_element(s)) vl.pb(p[i]); else vr.pb(p[i]); s[p[i]]='0'; } rep(i,l,r+1) s[p[i]]='1'; int ind=l; repa(e,vl) p[ind++]=e; repa(e,vr) p[ind++]=e; solve(l,l+vl.size()-1); solve(l+vl.size(),r); } vector<int> restore_permutation(int n, int w, int r) { vi ans(n); N=n; init(); x = find_n(); p.clear(); rep(i,0,n) if(i!=x) p.pb(i); solve(0,n-2); ans[x]=n-1; rep(i,0,n-1) ans[p[i]]=i; return ans; }

Compilation message (stderr)

messy.cpp: In function 'int find_n()':
messy.cpp:51:1: warning: control reaches end of non-void function [-Wreturn-type]
   51 | }
      | ^
messy.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
messy_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...