제출 #1194697

#제출 시각아이디문제언어결과실행 시간메모리
1194697aykhn스핑크스 (IOI24_sphinx)C++20
36 / 100
38 ms436 KiB
#include "sphinx.h"
#include <bits/stdc++.h>

using namespace std;

const int MXN = 1000;

vector<int> find_colours(int N, vector<int> X, vector<int> Y) 
{
  vector<int> ans(N);
  for (int col = 0; col < N; col++) 
  {
    {
      vector<int> c(N, 0);
      for (int i = 0; i < N; i++) 
      {
        if (i & 1) c[i] = col;
        else c[i] = -1;
      }
      int prv = -1;
      while (perform_experiment(c) != N)
      {
        int l = prv + 1, r = N - 1;
        while (l < r)
        {
          int mid = (l + r) >> 1;
          vector<int> q(N, 0);
          for (int i = 0; i < N; i++)
          {
            if (i & 1) q[i] = col;
            else
            {
              if (l <= i && i <= mid) q[i] = -1;
              else q[i] = N;
            }
          }
          if (perform_experiment(q) != N) r = mid;
          else l = mid + 1;
        }
        ans[l] = col;
        c[l] = N;
        prv = l;
      }
    }
    {
      vector<int> c(N, 0);
      for (int i = 0; i < N; i++) 
      {
        if (!(i & 1)) c[i] = col;
        else c[i] = -1;
      }
      int prv = -1;
      while (perform_experiment(c) != N)
      {
        int l = prv + 1, r = N - 1;
        while (l < r)
        {
          int mid = (l + r) >> 1;
          vector<int> q(N, 0);
          for (int i = 0; i < N; i++)
          {
            if (!(i & 1)) q[i] = col;
            else
            {
              if (l <= i && i <= mid) q[i] = -1;
              else q[i] = N;
            }
          }
          if (perform_experiment(q) != N) r = mid;
          else l = mid + 1;
        }
        ans[l] = col;
        c[l] = N;
        prv = l;
      }
    }
  }
  return ans;
}
#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...