제출 #1204176

#제출 시각아이디문제언어결과실행 시간메모리
1204176AvianshUnscrambling a Messy Bug (IOI16_messy)C++20
38 / 100
0 ms328 KiB
#include "messy.h" #include <bits/stdc++.h> using namespace std; vector<int> restore_permutation(int n, int w, int r) { string curr = ""; for(int i = 0;i<n;i++){ curr+="0"; } srand(time(0)); vector<int>ra(n); iota(ra.begin(),ra.end(),0); vector<int>temp; while(ra.size()){ int ind = rand() % ra.size(); temp.push_back(ra[ind]); swap(ra[ind],ra[ra.size()-1]); ra.pop_back(); } ra=temp; for(int i = 0;i<n-1;i++){ curr[ra[i]]='1'; add_element(curr); } vector<int>ans(n); compile_set(); for(int i = 0;i<n;i++){ curr[i]='0'; } vector<int>pos(n); iota(pos.begin(),pos.end(),0); for(int i = 1;i<n;i++){ //attempting to find where first 1 went vector<int>cur=pos; int fin = -1; while(1){ int ind = 0; curr[cur[ind]]='1'; if(check_element(curr)){ fin=cur[ind]; break; } curr[cur[ind]]='0'; swap(cur[ind],cur[cur.size()-1]); cur.pop_back(); } assert(fin!=-1); int fini = -1; for(int i = 0;i<pos.size();i++){ if(pos[i]==fin){ fini=i; break; } } swap(pos[fini],pos[pos.size()-1]); pos.pop_back(); //discovered new character //i-1th bit went to fin ans[fin]=ra[i-1]; } ans[pos[0]]=ra[n-1]; return ans; }

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