제출 #1184661

#제출 시각아이디문제언어결과실행 시간메모리
1184661petezaUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms584 KiB
#include <vector> #include <iostream> #include <algorithm> #include "messy.h" using namespace std; string cur; vector<string> added; vector<int> ans, pos; void recur_add(int l, int r) { int mid = (l+r) >> 1; for(int i=l;i<=r;i++) { cur[i] = '0'; } for(int i=l;i<=mid;i++) { cur[i] = '1'; add_element(cur); added.push_back(cur); cur[i] = '0'; } for(int i=l;i<=mid;i++) cur[i] = '1'; if(l != r && ((l+1!=r))) recur_add(mid+1, r); for(int i=mid+1;i<=r;i++) { cur[i] = '0'; } if(l+1 != r) cur[r] = '1'; if(l != r && (l+1 != r)) recur_add(l, mid); } void recur_ans(int l, int r, vector<int> candidates) { int mid = (l+r) >> 1; for(int &e:candidates) cur[e] = '0'; vector<int> yeshaha, noawww; for(int &e:candidates) { cur[e] = '1'; if(check_element(cur)) { yeshaha.push_back(e); } else { noawww.push_back(e); } cur[e] = '0'; } if(l+1 == r) { //special case, do some magical shit?? ans[l] = yeshaha[0]; ans[l+1] = noawww[0]; return; } for(int &e:yeshaha) cur[e] = '1'; recur_ans(mid+1, r, noawww); for(int &e:noawww) cur[e] = '0'; cur[ans[r]] = '1'; recur_ans(l, mid, yeshaha); } std::vector<int> restore_permutation(int n, int w, int r) { cur = string(n, '0'); recur_add(0, n-1); //for(auto &e:added) cout << e << " -> " << count(e.begin(), e.end(), '1') << '\n'; compile_set(); ans.resize(n); cur = string(n, '0'); vector<int> cands; for(int i=0;i<n;i++) cands.push_back(i); recur_ans(0, n-1, cands); pos.resize(n); for(int i=0;i<n;i++) pos[ans[i]] = i; //for(int &e:pos) cout << e << ' '; return pos; }

컴파일 시 표준 에러 (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...