제출 #1194694

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

using namespace std;

const int MXN = 1000;

vector<int> ans;

void solve(int l, int r, int col, int N)
{
  if (l == r) 
  {
    ans[l] = col;
    return;
  }
  int mid = (l + r) >> 1;
  {
    vector<int> c1(N, 0), c2(N, 0);
    for (int i = 0; i < N; i++) 
    {
      if (i & 1) c1[i] = col;
      else 
      {
        if (l <= i && i <= mid) c1[i] = -1;
        else c1[i] = N;
      }
    }
    for (int i = 0; i < N; i++) 
    {
      if (!(i & 1)) c2[i] = col;
      else 
      {
        if (l <= i && i <= mid) c2[i] = -1;
        else c2[i] = N;
      }
    }
    if (perform_experiment(c1) != N || perform_experiment(c2) != N) solve(l, mid, col, N);
  }
  {
    vector<int> c1(N, 0), c2(N, 0);
    for (int i = 0; i < N; i++) 
    {
      if (i & 1) c1[i] = col;
      else 
      {
        if (mid + 1 <= i && i <= r) c1[i] = -1;
        else c1[i] = N;
      }
    }
    for (int i = 0; i < N; i++) 
    {
      if (!(i & 1)) c2[i] = col;
      else 
      {
        if (mid + 1 <= i && i <= r) c2[i] = -1;
        else c2[i] = N;
      }
    }
    if (perform_experiment(c1) != N || perform_experiment(c2) != N) solve(mid + 1, r, col, N);
  }
}

vector<int> find_colours(int N, vector<int> X, vector<int> Y) 
{
  ans = vector<int>(N);
  for (int col = 0; col < N; col++) solve(0, N - 1, col, N);
  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...