제출 #1253656

#제출 시각아이디문제언어결과실행 시간메모리
1253656denislavUnscrambling a Messy Bug (IOI16_messy)C++20
0 / 100
0 ms328 KiB
# include <iostream> # include <vector> # include <algorithm> using namespace std; # include "messy.h" //# include "grader.cpp" const int MAX=128; int n,LOG; string s[MAX]; void build_level(int l, int r, int level) { if(l==r) return ; int mid=(l+r)/2; for(int i=l;i<=mid;i++) s[level][i]='1'; build_level(l,mid,level+1); build_level(mid+1,r,level+1); } int find_level(int x, int y, int l=0, int r=n-1, int level=0) { int mid=(l+r)/2; if(x<=mid and mid<y) return level; if(y<=mid) return find_level(x,y,l,mid,level+1); else return find_level(x,y,mid+1,r,level+1); } std::vector<int> restore_permutation(int N, int w, int r) { n=N; LOG=31-__builtin_clz(n); for(int i=0;i<LOG;i++) s[i]=string(n,'0'); build_level(0,n-1,0); for(int i=0;i<LOG;i++) add_element(s[i]); compile_set(); for(int x=0;x<n;x++) { for(int y=x+1;y<n;y++) { int f=1; for(int lv=0;lv<LOG;lv++) { string curr=s[lv]; swap(curr[x],curr[y]); if(!check_element(curr)) f=0; } if(f) { vector<int> ans; for(int i=0;i<n;i++) ans.push_back(i); swap(ans[x],ans[y]); return ans; } } } vector<int> ans; for(int i=0;i<n;i++) ans.push_back(i); return ans; } /* 4 128 128 0 1 2 3 */ /* 8 128 128 0 1 2 3 4 5 6 7 */ /* 8 128 128 0 1 2 4 3 5 6 7 */

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