Submission #1196321

#TimeUsernameProblemLanguageResultExecution timeMemory
1196321dostsUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms584 KiB
#include <bits/stdc++.h> #pragma GCC target("lzcnt,popcnt") #pragma GCC optimize("O3,unroll-loops") //#define int long long #define pii pair<int,int> #define vi vector<int> #define ff first #define ss second #define all(x) x.begin(),x.end() #define sp << " " << using namespace std; #include "messy.h" int nn; vi ans; void dnq(int l,int r) { if (l == r) return; int m = (l+r) >> 1; string str(nn,'0'); for (int i = 0;i<nn;i++) { if (i > r || i < l) str[i] = '1'; } for (int i = l;i<=m;i++) { str[i] = '1'; add_element(str); str[i] = '0'; } dnq(l,m),dnq(m+1,r); } void solve(vi v,int l,int r) { if (l == r) { assert(!v.empty()); ans[v.back()] = l; return; } string str(nn,'1'); for (auto it : v) str[it] = '0'; vi nxt,nxtt; int m = (l+r) >> 1; for (auto it : v) { str[it] = '1'; if (check_element(str)) nxt.push_back(it); else nxtt.push_back(it); str[it] = '0'; } solve(nxt,l,m),solve(nxtt,m+1,r); } std::vector<int> restore_permutation(int n, int w, int r) { nn = n; ans.resize(n); vi bts(n); iota(all(bts),0ll); dnq(0,n-1); compile_set(); solve(bts,0,n-1); return ans; }

Compilation message (stderr)

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...