Submission #1243024

#TimeUsernameProblemLanguageResultExecution timeMemory
1243024noyancanturkSphinx's Riddle (IOI24_sphinx)C++20
24 / 100
31 ms668 KiB
#include "sphinx.h" #include<bits/stdc++.h> using namespace std; const int lim=500; #define pb push_back #define ask perform_experiment int parent[lim]; int find(int i){ if(i==parent[i])return i; return parent[i]=find(parent[i]); } void unite(int i,int j){ parent[find(i)]=find(j); } vector<int>v[lim]; int n,m; vector<int>find_colours(int N,vector<int>X,vector<int>Y) { n=N; vector<int>ans; for(int i=0;i<n;i++){ int l=0,r=n-2,res=n-1; while(l<=r){ int mid=l+r>>1; vector<int>toask(n,n); toask[i]=-1; for(int j=0;j<n&&0<=mid;j++){ if(i==j)continue; toask[j]=mid--; } // assert(mid==-1); // for(int j=0;j<2;j++){ // cerr<<toask[j]<<' '; // }cerr<<'\n'; mid=l+r>>1; int cur=ask(toask); // cerr<<l<<' '<<r<<' '<<mid<<' '<<cur<<'\n'; if(cur==mid+2+(mid!=n-2)){ l=mid+1; }else{ r=mid-1; res=mid; } } ans.pb(res); } return ans; } // vector<int>find_colours(int N,vector<int>X,vector<int>Y) { // std::vector<int> E(N, -1); // int x = perform_experiment(E); // std::vector<int> G(N, 0); // if (x == 1) // G[0] = 1; // return G; // }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...