#include <bits/stdc++.h>
#include "avoid.h"
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
//#define int long long
#define pii pair<int,int>
#define vi vector<int>
#define ff first
#define ss second
#define sp << " " <<
#define all(x) x.begin(),x.end()
using namespace std;
const int MOD = 1e9+7;
std::pair<int, int> scout(int R, int H) {
if (H == 1) {
if (R == 10) {
int ans = 0;
for (int i=0;i<10;i++) {
vi v;
for (int j = 0;j<1000;j++) {
if (j&(1<<i)) v.push_back(j+1);
}
send(v);
}
vi rets = wait();
for (int i = 0;i<10;i++) if (rets[i]) ans|=(1<<i);
return {ans+1,ans+1};
}
else {
}
}
else if (H == 2) {
assert(R == 30);
for (int i = 0;i<10;i++) {
vi v,v2;
for (int j = 0;j<1000;j++) {
if (j&(1<<i)) v.push_back(j+1);
else v2.push_back(j+1);
}
send(v);
send(v2);
}
vi rets = wait();
int diff = -1,diffs = 0;
int orr = 0;
for (int i = 0;i<10;i++) {
if (rets[2*i] && rets[2*i+1]) diff = i,diffs|=(1<<i);
if (rets[2*i]) orr|=(1<<i);
}
//ikisinde de olan bitler
if (diff == -1) return {orr+1,orr+1};
int p1 = 0;
for (int i=0;i<10;i++) {
vi v;
for (int j = 0;j<1000;j++) {
if ((j&(1<<diff)) && (j&(1<<i))) {
v.push_back(j+1);
}
}
send(v);
}
vi rets2 = wait();
for (int i = 0;i<10;i++) if (rets2[i]) p1|=(1<<i);
return {p1+1,(p1^diffs)+1};
}
else {
//R = H = 20
int l = 1;
int r = 1000;
while(l<=r) {
int m = (l+r) >> 1;
vi v;
for (int i=1;i<=m;i++) v.push_back(i);
send(v);
int res = wait()[0];
if (res) r = m-1;
else l = m+1;
}
int p1 = l;
l = p1;
r = 1000;
while(l<=r) {
int m = (l+r) >> 1;
vi v;
for (int i = m;i<=1000;i++) v.push_back(i);
send(v);
int res = wait()[0];
if (res) l = m+1;
else r = m-1;
}
return {r,p1};
}
}
Compilation message (stderr)
avoid.cpp: In function 'std::pair<int, int> scout(int, int)':
avoid.cpp:95:1: warning: control reaches end of non-void function [-Wreturn-type]
95 | }
| ^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |