Submission #1176017

#TimeUsernameProblemLanguageResultExecution timeMemory
1176017n3rm1nUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms584 KiB
#include<bits/stdc++.h> #include "messy.h" using namespace std; const int maxn = 200; int pp[maxn]; int N; int outside[maxn]; void ask(int l, int r) { if(l == r) { return; } memset(outside, 0, sizeof(outside)); int mid = (l + r)/ 2; /// in first half vector < int > addon; for (int i = l; i <= mid; ++ i) addon.push_back(i); for (int i = 0; i < l; ++ i) outside[i] = 1; for (int i = r+1; i < N; ++ i) outside[i] = 1; for (auto x: addon) { string askme = ""; for (int i = 0; i < N; ++ i) { if(i == x || outside[i])askme += '1'; else askme += '0'; } add_element(askme); /// cout << askme << endl; } ask(l, mid); ask(mid+1, r); } int outrange[maxn]; int inrange[maxn]; void solve(int l, int r, vector < int > g) { /*cout << l << " " << r << endl; for (auto val: g) cout << val << " "; cout << endl;*/ if(l == r) { pp[g[0]] = l; return; } int mid = (l + r)/2; memset(inrange, 0, sizeof(inrange)); memset(outrange, 0, sizeof(outrange)); for (auto x: g) { inrange[x] = 1; } for (int i = 0; i < N; ++ i) { if(!inrange[i])outrange[i] = 1; } vector < int > onleft, onright; for (auto x: g) { string tryme = ""; for (int i = 0; i < N; ++ i) if(i == x || outrange[i])tryme += '1'; else tryme += '0'; ///cout << tryme << endl; if(check_element(tryme)) { onleft.push_back(x); ///cout << "goes left" << endl; } else { onright.push_back(x); ///cout << "goes right" << endl; } } solve(l, mid, onleft); solve(mid+1, r, onright); } std::vector<int> restore_permutation(int n, int w, int r) { N = n; /// cout << "asking " << endl; ask(0, N-1); /// cout << "answering " << endl; compile_set(); vector < int > g; for (int i = 0; i < n; ++ i) g.push_back(i); solve(0, N-1, g); vector < int > ans; for (int i = 0; i < n; ++ i) ans.push_back(pp[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...