제출 #155463

#제출 시각아이디문제언어결과실행 시간메모리
155463Mercenary도서관 (JOI18_library)C++14
0 / 100
502 ms380 KiB

#include<bits/stdc++.h>
#include "library.h"
using namespace std;

void Solve(int n)
{
    vector<int> res(n);
    vector<int> ask(n , 1);
    int pre = 0;
    vector<int> p(n);
    for(int i = 0 ; i < n ; ++i)p[i] = i;
    auto del = [&](int x){
        p.erase(find(p.begin(),p.end(),x));
    };
    for(int i = 0 ; i < n ; ++i){
        ask[i] = 0;
        if(Query(ask) == 1){
            pre = i;
            break;
        }
        ask[i] = 1;
    }
    del(pre);res[0] = pre;
    for(int i = 1 ; i < n ; ++i){
        int l = 0 , h = (int)p.size() - 1;
        while(l <= h){
            fill(ask.begin(),ask.end(),0);
            int mid = l + h >> 1;
            for(int j = 0 ; j <= mid ; ++j)ask[p[j]] = 1;
            int last = Query(ask);
            ask[pre] = 1;
            if(last == Query(ask))h = mid - 1;
            else l = mid + 1;
        }
        pre = p[l];
        del(pre);
        res[i] = pre;
    }
    for(int i = 0 ; i < n ; ++i)res[i]++;
	Answer(res);
}

컴파일 시 표준 에러 (stderr) 메시지

library.cpp: In function 'void Solve(int)':
library.cpp:29:25: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
             int mid = l + h >> 1;
                       ~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...