Submission #1326607

#TimeUsernameProblemLanguageResultExecution timeMemory
1326607AMnuUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
2 ms600 KiB
#include "messy.h" #include <bits/stdc++.h> using namespace std; int N; string S; vector<int> P, ans; void add(int L,int R) { if (L==R) return; int M = (L+R)/2; for (int i=0;i<N;i++) { if (L<=i && i<=R) { S[i] = '0'; } else { S[i] = '1'; } } for (int i=L;i<=M;i++) { S[i] = '1'; add_element(S); S[i] = '0'; } add(L,M); add(M+1,R); } void check(int L,int R) { if (L == R) return; int M = (L+R)/2; for (int i=0;i<N;i++) { if (L<=i && i<=R) { S[P[i]] = '0'; } else { S[P[i]] = '1'; } } int i=L,j=R; while (i<=M&&j>M) { S[P[i]] = '1'; bool B = check_element(S); S[P[i]] = '0'; if (B) { i++; } else { swap(P[i],P[j]); j--; } } check(L,M); check(M+1,R); } vector<int> restore_permutation(int n, int w, int r) { N = n; for (int i=0;i<N;i++) { S += '0'; P.push_back(i); ans.push_back(0); } add(0,N-1); compile_set(); check(0,N-1); for (int i=0;i<N;i++) { ans[P[i]] = i; } 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...