제출 #1241191

#제출 시각아이디문제언어결과실행 시간메모리
1241191MarwenElarbi스핑크스 (IOI24_sphinx)C++20
28.50 / 100
28 ms920 KiB
#include <bits/stdc++.h>
#include "sphinx.h"
using namespace std;
#define fi first
#define se second
#define pb push_back
const int nax = 5e5+5;

std::vector<int> find_colours(int N, std::vector<int> X, std::vector<int> Y) {
  vector<int> parent(N);
  vector<int> cur;
  cur.push_back(0);
  vector<int> component[N];
  component[0].push_back(0);
  for (int i = 0; i < N; ++i) parent[i]=i;
  for (int i = 1; i < N; ++i)
  {
    int l=-1;
    int r=cur.size();
    while(r-l>1){
      int mid=(r+l)/2;
      vector<int> cnt(N,N);
      cnt[i]=-1;
      for (int j = 0; j <= mid; ++j)
      {
        for(auto u : component[cur[j]]) cnt[u]=-1;
      }
      bool test=false;
      for(auto u : cnt) if(u==N) test=true;
      /*for(auto u:cnt) cout <<u<<" ";
        cout <<endl;
      cout << perform_experiment(cnt)-(test)<<" "<<mid+1<<endl;*/
      if(perform_experiment(cnt)-(test)<=mid+1) r=mid;
      else l=mid;
    }
    if(r==cur.size()){
      component[i].push_back(i);
      cur.push_back(i);
    }
    else {
      parent[i]=cur[r];
      component[cur[r]].push_back(i);
    }
  }
  return parent;
}
#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...