| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1312350 | eri16 | 스핑크스 (IOI24_sphinx) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "sphinx.h"
using namespace std;
/*
int perform_experiment(vector <int> v){
for (auto x : v){cout<<x<<" ";}cout<<"\n";
int z;
cin>>z;
return z;
}
*/
vector<int> find_colours(int N, vector<int> X, vector<int> Y){
int n = N;
vector <int> ans(n,0);
for (int i=0; i<n; i++){
int l = 0;
int r = n-1;
while (l<r){
int mid = (l+r)/2;
//cout<<l<<' '<<r<<"\n";
vector <int> tm (n,n);
int cnt = l;
for (int j=0; j<n; j++){
if (i==j){tm[j]=-1;}
else{
if (cnt<=mid){
tm[j]=cnt;
}
cnt++;
}
}
//cout<<l<<' '<<mid<<' '<<r<<"\n";
int found = perform_experiment(tm);
if (l==0 && mid+2==n){
if (found != mid - l + 1){l = mid + 1;//cout<<"ranfunction#11"<<"\n";}
else{r = mid;//cout<<"ranfunction#22"<<"\n";}
}
else{
if (found != mid - l + 2){l = mid + 1;//cout<<"ranfunction#1"<<"\n";}
else{r = mid;//cout<<"ranfunction#2"<<"\n";}
}
}
ans[i]=l;
//cout<<"answer to id "<<i<<" was color "<<l<<"\n";
}
return ans;
}
