제출 #1312640

#제출 시각아이디문제언어결과실행 시간메모리
1312640settopUnscrambling a Messy Bug (IOI16_messy)C++20
39 / 100
1 ms568 KiB
#include "messy.h" #include<bits/stdc++.h> using namespace std; #include<ext/pb_ds/assoc_container.hpp> #include<ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; #define ll long long #define ordered_set tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> #define fall(i,a,b) for(int i=a;i<=b;i++) #define rfall(i,a,b) for(int i=a;i>=b;i--) #define pb push_back #define sz(x) (int)x.size() typedef pair<ll,ll> pii; int n,cur=1; vector<int> p,rev; void build(int l,int r){ if(l==r) return; int m=(l+r)/2; if(m<=7) build(m+1,r); else{ string s=""; fall(i,0,n-1) s+="1"; fall(j,0,cur-2) s[j]='0'; fall(i,l,m){ if(i<=7) continue; s[i]='0'; add_element(s); s[i]='1'; } cur++; build(l,m); build(m+1,r); } } void walk(int l,int r,vector<int> v){ if(l==r){ p[v[0]]=l; rev[l]=v[0]; return; } int m=(l+r)/2; if(m<=7) walk(m+1,r,v); else{ vector<int> g1,g2; string s=""; fall(i,0,n-1) s+="1"; fall(j,0,cur-2) s[rev[j]]='0'; for(auto u:v){ s[u]='0'; if(check_element(s)) g1.pb(u); else g2.pb(u); s[u]='1'; } cur++; walk(l,m,g1); walk(m+1,r,g2); } } std::vector<int> restore_permutation(int N, int lx, int lx2){ n=N; string s=""; p.resize(n,-1); rev.resize(n); fall(i,0,n-1) s+="0"; fall(i,0,7){ s[i]='1'; add_element(s); } build(0,n-1); compile_set(); fall(i,0,7) s[i]='0'; fall(j,0,7){ fall(i,0,n-1){ if(p[i]!=-1) continue; s[i]='1'; if(check_element(s)){ p[i]=j; rev[j]=i; break; } s[i]='0'; } } vector<int> candidates; fall(i,0,n-1) if(p[i]==-1) candidates.pb(i); cur=1; walk(0,n-1,candidates); 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...