Submission #1194695

#TimeUsernameProblemLanguageResultExecution timeMemory
1194695TahirAliyevSphinx's Riddle (IOI24_sphinx)C++20
0 / 100
0 ms424 KiB
#include "sphinx.h"
#include <bits/stdc++.h>
using namespace std;
#define pii pair<int, int>

int n;
vector<int> ans;

bool ask(int l, int r, int x){
    vector<int> v(n);
    for(int i = 0; i < n; i++){
        if(i & 1) v[i] = x;
        else v[i] = n;
    }
    for(int i = l; i <= r; i++){
        if(!(i & 1)) v[i] = -1;
    }
    if(perform_experiment(v) != n) return 1;
    for(int i = 0; i < n; i++){
        if(i & 1) v[i] = n;
        else v[i] = x;
    }
    for(int i = l; i <= r; i++){
        if(i & 1) v[i] = -1;
    }
    if(perform_experiment(v) != n) return 1;
}

void rec(int l, int r, int x){
    if(l == r){
        ans[l] = x;
        return;
    }
    int mid = (l + r) / 2;
    if(ask(l, mid, x) != n){
        rec(l, mid, x);
    }
    if(ask(mid + 1, r, x) != n){
        rec(mid + 1, r, x);
    }
}

vector<int> find_colours(int N, vector<int> X, vector<int> Y){
    n = N;
    ans.resize(n);
    for(int i = 0; i < N; i++){
        rec(0, n - 1, i);
    }
    return ans;
}

Compilation message (stderr)

sphinx.cpp: In function 'bool ask(int, int, int)':
sphinx.cpp:27:1: warning: control reaches end of non-void function [-Wreturn-type]
   27 | }
      | ^
#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...