제출 #597435

#제출 시각아이디문제언어결과실행 시간메모리
597435Hanksburger도서관 (JOI18_library)C++17
100 / 100
278 ms420 KiB
#include "library.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> v, zero, tmp, ans;
void Solve(int n)
{
    for (int i=1; i<=n; i++)
    {
        v.push_back(i);
        zero.push_back(0);
    }
    for (int i=0; i<n; i++)
    {
        int l=0, r=n-i-1;
        while (l<r)
        {
            int m=(l+r)/2, res1, res2;
            tmp=zero;
            for (int j=l; j<=m; j++)
                tmp[v[j]-1]=1;
            res1=Query(tmp);
            if (i)
                tmp[ans[i-1]-1]=1;
            else
                for (int j=0; j<n; j++)
                    tmp[j]^=1;
            res2=Query(tmp);
            if (res1>=res2)
                r=m;
            else
                l=m+1;
        }
        ans.push_back(v[l]);
        v.erase(v.begin()+l);
    }
    Answer(ans);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...