제출 #1154800

#제출 시각아이디문제언어결과실행 시간메모리
1154800AlgorithmWarriorUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
2 ms584 KiB
#include <vector>
#include <cstdio>
#include <string>
#include <set>
#include <cstdlib>
#include <iostream>
#include "messy.h"

using namespace std;

string send_string(int l,int r,int ind,int n){
    string sir;
    int i;
    for(i=0;i<n;++i)
        if(i<l || i>r || i==ind)
            sir.push_back('1');
        else
            sir.push_back('0');
    return sir;
}

void send_all_strings(int l,int r,int n){
    if(l<r){
        int mij=(l+r)/2;
        int i;
        for(i=l;i<=mij;++i)
            add_element(send_string(l,r,i,n));
        send_all_strings(l,mij,n);
        send_all_strings(mij+1,r,n);
    }
}

struct interval{
    int l,r;
}ans[128];

string get_string(int ind,int n){
    string sir;
    int i;
    for(i=0;i<n;++i)
        if((ans[i].l!=ans[ind].l && ans[i].r!=ans[ind].r) || i==ind)
            sir.push_back('1');
        else
            sir.push_back('0');
    return sir;
}

vector<int> restore_permutation(int n, int w, int r) {
    send_all_strings(0,n-1,n);
    compile_set();
    int i,j;
    for(i=0;i<n;++i){
        ans[i].l=0;
        ans[i].r=n-1;
    }
    for(j=n/2;j;j/=2)
        for(i=0;i<n;++i){
            int mij=(ans[i].l+ans[i].r)/2;
            if(check_element(get_string(i,n)))
                ans[i].r=mij;
            else
                ans[i].l=mij+1;
        }
    vector<int>answer;
    for(i=0;i<n;++i)
        answer.push_back(ans[i].l);
    return answer;
}

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