Submission #490934

#TimeUsernameProblemLanguageResultExecution timeMemory
490934ETKLibrary (JOI18_library)C++14
100 / 100
445 ms576 KiB
//GOODTEK!!! #include "library.h" #include <bits/stdc++.h> #define rep(i,a,b) for(int i=(a);i<=(b);++i) #define per(i,a,b) for(int i=(a);i>=(b);--i) #define pii pair<int,int> #define vi vector<int> #define fi first #define se second #define pb push_back #define ALL(x) x.begin(),x.end() #define ll long long using namespace std; inline ll read(){ ll x=0,f=1;char ch=getchar(); while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();} while (isdigit(ch)){x=x*10+ch-48;ch=getchar();} return x*f; } int n; int ask(vi vec,int w=0){ vi que(n); for(int x:vec)que[x-1]=1; if(w)que[w-1]=1; return Query(que); } void Solve(int N){ n=N; vi p(n); for(int i=0;i<n;i++)p[i]=i+1; random_shuffle(ALL(p)); rep(i,1,n-1){ swap(p[0],p[i]); if(i==n-1||ask(vi(p.begin()+1,p.end()))==1)break; } rep(i,0,n-2){ auto l=p.begin()+i+1,r=p.end(); while(l+1!=r){ auto mid=l+(r-l)/2; if(ask(vi(l,mid))==ask(vi(l,mid),p[i]))r=mid; else l=mid; } swap(p[i+1],*l); } Answer(p); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...