Submission #1243020

#TimeUsernameProblemLanguageResultExecution timeMemory
1243020noyancanturkSphinx's Riddle (IOI24_sphinx)C++20
0 / 100
0 ms424 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--;
      }
      // for(int j=0;j<20;j++){
      //   cerr<<toask[j]<<' ';
      // }cerr<<'\n';
      mid=l+r>>1;
      int cur=ask(toask);
      // cerr<<mid<<' '<<cur<<'\n';
      if(cur==mid+3){
        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...