Submission #388905

#TimeUsernameProblemLanguageResultExecution timeMemory
388905denkendoemeerLibrary (JOI18_library)C++14
100 / 100
383 ms320 KiB
#include<bits/stdc++.h>
#include "library.h"
using namespace std;
void Solve(int n)
{
    vector<int>v(n,1),viz(n,0),a;
    if (n==1){
        a={1};
        Answer(a);
        return ;
    }
    int i;
    for(i=1;i<=n;i++){
        v[i-1]--;
        if (Query(v)==1){
            a.push_back(i);
            viz[i-1]=1;
            break;
        }
        v[i-1]++;
    }
    while(a.size()<n){
        vector<int>aux;
        for(i=1;i<=n;i++)
            if (viz[i-1]==0)
                aux.push_back(i);
        int st=0,dr=aux.size();
        while(dr-st>1){
            int mij=(st+dr)/2;
            fill(v.begin(),v.end(),0);
            for(i=0;i<mij;i++)
                v[aux[i]-1]++;
            int val=Query(v);
            v[a.back()-1]++;
            if (Query(v)==val)
                dr=mij;
            else
                st=mij;
        }
        a.push_back(aux[st]);
        viz[aux[st]-1]++;
    }
    Answer(a);
}

Compilation message (stderr)

library.cpp: In function 'void Solve(int)':
library.cpp:22:19: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   22 |     while(a.size()<n){
      |           ~~~~~~~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...