#include <bits/stdc++.h>
#include "vision.h"
using namespace std;
using int_t = int64_t;
using int128 = __int128_t;
using ld = long double;
using pi = pair<int_t, int_t>;
using vi = vector<int_t>;
using vvi = vector<vi>;
constexpr int_t INF{numeric_limits<int_t>::max()};
int H_;
int W_;
int ind(int a, int b)
{
return W_ * a + b;
}
void construct_network(int H, int W, int K)
{
H_ = H;
W_ = W;
vector<int> Ns;
vector<pi> kPos;
int_t dem;
vector<int> lf;
vector<int> rg;
int_t low = 0;
int_t hig = H * W;
int pic1 = -1;
int pic2 = -1;
int_t llow = 0;
int_t lhig = 0;
int_t rlow = 0;
int_t rhig = 0;
while (lf.empty())
{
vector<int> lm;
vector<int> rm;
if (hig - low <= 2)
{
pic1 = low;
pic2 = hig - 1;
break;
}
for (int_t i = low; i < hig; i++)
{
if (i < (low + hig) / 2)
{
lm.push_back(i);
}
else
{
rm.push_back(i);
}
}
int_t c1 = add_or(lm);
cin >> c1;
if (c1 == 1)
{
int_t c2 = add_or(rm);
cin >> c2;
if (c2 == 0)
{
hig = lm.back() + 1;
}
else
{
llow = low;
lhig = lm.back() + 1;
rlow = rm[0];
rhig = hig;
lf = lm;
rg = rm;
}
}
else
{
low = rm[0];
}
}
while (pic1 == -1)
{
vector<int> lm;
vector<int> rm;
if (lhig - llow <= 1)
{
pic1 = llow;
break;
}
for (int_t i = llow; i < lhig; i++)
{
if (i < (llow + lhig) / 2)
{
lm.push_back(i);
}
else
{
rm.push_back(i);
}
}
int_t c1 = add_or(lm);
cin >> c1;
if (c1 == 1)
{
lhig = lm.back() + 1;
if (lm.size() == 1)
{
pic1 = lm[0];
}
}
else
{
if (lm.size() == 1)
{
pic1 = rm[0];
}
llow = rm[0];
}
}
while (pic2 == -1)
{
vector<int> lm;
vector<int> rm;
if (rhig - rlow <= 1)
{
pic2 = rlow;
break;
}
for (int_t i = rlow; i < rhig; i++)
{
if (i < (rlow + rhig) / 2)
{
lm.push_back(i);
}
else
{
rm.push_back(i);
}
}
int_t c1 = add_or(lm);
cin >> c1;
if (c1 == 1)
{
rhig = lm.back() + 1;
if (lm.size() == 1)
{
pic2 = lm[0];
}
}
else
{
if (lm.size() == 1)
{
pic2 = rm[0];
}
rlow = rm[0];
}
}
int_t c1, r1, c2, r2;
c1 = pic1 / W;
c2 = pic2 / W;
r1 = pic1 % H;
r2 = pic2 % H;
if (abs(c1 - c2) + abs(r1 - r2) == K)
{
add_or({pic1, pic2});
}
else
{
add_xor({pic1, pic2});
}
return;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |