제출 #1171908

#제출 시각아이디문제언어결과실행 시간메모리
1171908kimUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms584 KiB
#include "messy.h"
#include<bits/stdc++.h>
using namespace std;
#define eb emplace_back

string s;
vector<int> ans;

void addElement(int l,int r){
  if(l==r) return;
  int mid=l+r>>1;
  for(auto &e:s) e='1';
  for(int i=l;i<=r;++i) s[i]='0';
  for(int i=l;i<=mid;++i){
    s[i]='1';
    add_element(s);
    s[i]='0';
  }
  addElement(l,mid), addElement(mid+1,r);
}
void checkElement(int l,int r,vector<int> v){
  if(l==r) return void(ans[v[0]]=l);
  int mid=l+r>>1;
  vector<int> vl,vr;
  for(auto &e:s) e='1';
  for(auto &e:v) s[e]='0';
  for(auto &e:v){
    s[e]='1';
    if(check_element(s)) vl.eb(e);
    else vr.eb(e);
    s[e]='0';
  }
  checkElement(l,mid,vl), checkElement(mid+1,r,vr);
}

vector<int> restore_permutation(int n, int w, int r) {
  s.resize(n);
  addElement(0,n-1);
  compile_set();
  vector<int> v(n);
  iota(v.begin(),v.end(),0);
  ans.resize(n);
  checkElement(0,n-1,v);
  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...