제출 #1151203

#제출 시각아이디문제언어결과실행 시간메모리
1151203alexddUnscrambling a Messy Bug (IOI16_messy)C++20
20 / 100
1 ms584 KiB
#include "messy.h" #include <bits/stdc++.h> using namespace std; vector<int> brut(int n) { for(int i=1;i<=n;i++) { string s=""; for(int j=0;j<i;j++) s.push_back('1'); for(int j=0;j<n-i;j++) s.push_back('0'); add_element(s); } compile_set(); string cur=""; for(int i=0;i<n;i++) cur.push_back('0'); vector<int> perm(n); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(cur[j]=='0') { cur[j]='1'; if(check_element(cur)) { perm[j]=i; break; } cur[j]='0'; } } } return perm; } std::vector<int> restore_permutation(int n, int w, int r) { if(n==8) return brut(n); int cntb=0; while((1<<cntb)<=n) cntb++; for(int i=0;i<cntb;i++) { string s=""; for(int j=0;j<=i;j++) s.push_back('1'); for(int j=0;j<n-i-1;j++) s.push_back('0'); add_element(s); } for(int i=cntb;i<n;i++) { string pref=""; for(int j=0;j<cntb;j++) { if((1<<j)&i) pref.push_back('1'); else pref.push_back('0'); } string suff=""; for(int j=cntb;j<n;j++) { if(j==i) suff.push_back('0'); else suff.push_back('1'); } add_element(pref+suff); for(int j=cntb-1;j>=0;j--) { if(pref[j]=='1') { pref[j]='0'; add_element(pref+suff); } } } compile_set(); string cur=""; for(int i=0;i<n;i++) cur.push_back('0'); vector<int> mici(cntb),sol(n); for(int i=0;i<cntb;i++) { for(int j=0;j<n;j++) { if(cur[j]=='0') { cur[j]='1'; if(check_element(cur)) { mici[i]=j; sol[j]=i; break; } cur[j]='0'; } } } for(int i=cntb;i<n;i++) { string pref="",suff=""; for(int j=cntb;j<n;j++) { if(j==i) suff.push_back('0'); else suff.push_back('1'); } for(int j=0;j<cntb;j++) pref.push_back('0'); assert(check_element(pref+suff)); int sum=0; for(int j=0;j<cntb;j++) { pref[j]='1'; if(check_element(pref+suff)) { sum += (1<<j); } else pref[j]='0'; } sol[sum]=i; } return sol; } /* 4 16 16 2 1 3 0 */

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