#include <bits/stdc++.h>
#include "ancient2.h"
using namespace std;
string Solve(int n) {
//n = 1000 sau ceva
int m = n / 2;
string ans;
for (int i = 0; i < m; i ++) { //aflu manual primele 500
vector<int> a(i + 3), b(i + 3);
for (int j = 0; j < i; j ++)
a[j] = b[j] = j + 1;
a[i] = i + 1;
b[i] = i + 2;
a[i + 1] = b[i + 1] = i + 1;
a[i + 2] = b[i + 2] = i + 2;
int x = Query(i + 3, a, b);
if (x == i + 1)
ans.push_back('0');
else
ans.push_back('1');
}
for (int i = m; i < n; i ++) {
vector<int> a(m + 1), b(m + 1);
for (int j = 0; j < m; j ++)
a[j] = b[j] = (j + 1) % m;
a[m] = b[m] = m;
if (ans[i % m] == '0') {
b[i % m] = m;
int x = Query(m + 1, a, b);
if (x == m)
ans.push_back('1');
else
ans.push_back('0');
} else {
a[i % m] = m;
int x = Query(m + 1, a, b);
if (x == m)
ans.push_back('0');
else
ans.push_back('1');
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |