제출 #1225488

#제출 시각아이디문제언어결과실행 시간메모리
1225488Hamed_GhaffariUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms584 KiB
#include <vector> #include "messy.h" #include <bits/stdc++.h> using namespace std; #define mid ((l+r)>>1) int n; vector<int> p; string s; void add(int l, int r) { if(r-l==1) return; for(int i=l; i<mid; i++) { s[i] = '1'; add_element(s); s[i] = '0'; } for(int i=mid; i<r; i++) s[i] = '1'; add(l, mid); for(int i=l; i<mid; i++) s[i] = '1'; for(int i=mid; i<r; i++) s[i] = '0'; add(mid, r); for(int i=l; i<mid; i++) s[i] = '0'; } void check(int l, int r, vector<int> vec) { if(r-l==1) { p[vec[0]] = l; return; } vector<int> vecl, vecr; for(int i : vec) { s[i] = '1'; (check_element(s) ? vecl : vecr).push_back(i); s[i] = '0'; } for(int i : vecr) s[i] = '1'; check(l, mid, vecl); for(int i : vecl) s[i] = '1'; for(int i : vecr) s[i] = '0'; check(mid, r, vecr); for(int i : vecl) s[i] = '0'; } vector<int> restore_permutation(int n, int w, int r) { ::n = n; s = string(n, '0'); add(0, n); s = string(n, '0'); p = vector<int>(n); compile_set(); vector<int> vec(n); iota(vec.begin(), vec.end(), 0); check(0, n, vec); return p; }

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