#include "minerals.h"
#include <bits/stdc++.h>
#define pii pair<int, int>
#define F first
#define S second
using namespace std;
int pre, cur;
bool change(int x)
{
// cerr << "change " << x << '\n';
cur = Query(x);
swap(pre, cur);
return pre != cur;
}
double multi = 0.4;
void solve(vector<int> X, vector<int> Y, bool bX, bool bY)
{
if(X.size() == 1)
{
Answer(X[0], Y[0]);
return;
}
int N = X.size(), mid = (N >= 10 ? floor(multi * N) : N / 2);
vector<int> lX(X.begin(), X.begin() + mid), rX(X.begin() + mid, X.end()), lY, rY;
if(bX)
for(int i = 0; i < mid; i++)
change(X[i]);
else
for(int i = 0; i < mid; i++)
change(X[i]);
for(int i : Y)
{
if(change(i) ^ bX)
rY.emplace_back(i);
else
lY.emplace_back(i);
if(lY.size() == mid || rY.size() == N - mid)
break;
}
if(lY.size() == mid)
while(rY.size() < N - mid)
{
rY.emplace_back(Y.back());
Y.pop_back();
}
else
while(lY.size() < mid)
{
lY.emplace_back(Y.back());
Y.pop_back();
}
solve(lX, lY, !bX, !bY);
solve(rX, rY, bX, !bY);
}
void Solve(int N)
{
//cin >> multi;
pre = cur = 0;
vector<int> X, Y;
//mt19937 rd(std::chrono::steady_clock::now().time_since_epoch().count());
for(int i = 1; i <= 2 * N; i++)
{
if(change(i))
X.emplace_back(i);
else
Y.emplace_back(i);
}
//shuffle(X.begin(), X.end(), rd);
//shuffle(Y.begin(), Y.end(), rd);
solve(X, Y, 1, 1);
}
Compilation message
minerals.cpp: In function 'void solve(std::vector<int>, std::vector<int>, bool, bool)':
minerals.cpp:45:16: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
45 | if(lY.size() == mid || rY.size() == N - mid)
| ~~~~~~~~~~^~~~~~
minerals.cpp:45:36: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
45 | if(lY.size() == mid || rY.size() == N - mid)
| ~~~~~~~~~~^~~~~~~~~~
minerals.cpp:48:15: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
48 | if(lY.size() == mid)
| ~~~~~~~~~~^~~~~~
minerals.cpp:49:19: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
49 | while(rY.size() < N - mid)
| ~~~~~~~~~~^~~~~~~~~
minerals.cpp:55:19: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
55 | while(lY.size() < mid)
| ~~~~~~~~~~^~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
208 KB |
Output is correct |
2 |
Correct |
0 ms |
208 KB |
Output is correct |
3 |
Correct |
1 ms |
208 KB |
Output is correct |
4 |
Correct |
1 ms |
208 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
336 KB |
Output is correct |
2 |
Correct |
2 ms |
464 KB |
Output is correct |
3 |
Correct |
4 ms |
624 KB |
Output is correct |
4 |
Correct |
6 ms |
848 KB |
Output is correct |
5 |
Correct |
13 ms |
1436 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
208 KB |
Output is correct |
2 |
Correct |
0 ms |
208 KB |
Output is correct |
3 |
Correct |
1 ms |
208 KB |
Output is correct |
4 |
Correct |
1 ms |
208 KB |
Output is correct |
5 |
Correct |
1 ms |
336 KB |
Output is correct |
6 |
Correct |
2 ms |
464 KB |
Output is correct |
7 |
Correct |
4 ms |
624 KB |
Output is correct |
8 |
Correct |
6 ms |
848 KB |
Output is correct |
9 |
Correct |
13 ms |
1436 KB |
Output is correct |
10 |
Correct |
1 ms |
336 KB |
Output is correct |
11 |
Correct |
9 ms |
1116 KB |
Output is correct |
12 |
Correct |
15 ms |
1500 KB |
Output is correct |
13 |
Correct |
12 ms |
1464 KB |
Output is correct |
14 |
Correct |
11 ms |
1488 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
208 KB |
Output is correct |
2 |
Correct |
0 ms |
208 KB |
Output is correct |
3 |
Correct |
1 ms |
208 KB |
Output is correct |
4 |
Correct |
1 ms |
208 KB |
Output is correct |
5 |
Correct |
1 ms |
336 KB |
Output is correct |
6 |
Correct |
2 ms |
464 KB |
Output is correct |
7 |
Correct |
4 ms |
624 KB |
Output is correct |
8 |
Correct |
6 ms |
848 KB |
Output is correct |
9 |
Correct |
13 ms |
1436 KB |
Output is correct |
10 |
Correct |
1 ms |
336 KB |
Output is correct |
11 |
Correct |
9 ms |
1116 KB |
Output is correct |
12 |
Correct |
15 ms |
1500 KB |
Output is correct |
13 |
Correct |
12 ms |
1464 KB |
Output is correct |
14 |
Correct |
11 ms |
1488 KB |
Output is correct |
15 |
Correct |
39 ms |
3404 KB |
Output is correct |
16 |
Correct |
36 ms |
3404 KB |
Output is correct |
17 |
Correct |
33 ms |
3368 KB |
Output is correct |
18 |
Correct |
31 ms |
3196 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
208 KB |
Output is correct |
2 |
Correct |
0 ms |
208 KB |
Output is correct |
3 |
Correct |
1 ms |
208 KB |
Output is correct |
4 |
Correct |
1 ms |
208 KB |
Output is correct |
5 |
Correct |
1 ms |
336 KB |
Output is correct |
6 |
Correct |
2 ms |
464 KB |
Output is correct |
7 |
Correct |
4 ms |
624 KB |
Output is correct |
8 |
Correct |
6 ms |
848 KB |
Output is correct |
9 |
Correct |
13 ms |
1436 KB |
Output is correct |
10 |
Correct |
1 ms |
336 KB |
Output is correct |
11 |
Correct |
9 ms |
1116 KB |
Output is correct |
12 |
Correct |
15 ms |
1500 KB |
Output is correct |
13 |
Correct |
12 ms |
1464 KB |
Output is correct |
14 |
Correct |
11 ms |
1488 KB |
Output is correct |
15 |
Correct |
39 ms |
3404 KB |
Output is correct |
16 |
Correct |
36 ms |
3404 KB |
Output is correct |
17 |
Correct |
33 ms |
3368 KB |
Output is correct |
18 |
Correct |
31 ms |
3196 KB |
Output is correct |
19 |
Correct |
37 ms |
3388 KB |
Output is correct |
20 |
Correct |
36 ms |
3452 KB |
Output is correct |
21 |
Correct |
29 ms |
3396 KB |
Output is correct |
22 |
Correct |
28 ms |
3272 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
208 KB |
Output is correct |
2 |
Correct |
0 ms |
208 KB |
Output is correct |
3 |
Correct |
1 ms |
208 KB |
Output is correct |
4 |
Correct |
1 ms |
208 KB |
Output is correct |
5 |
Correct |
1 ms |
336 KB |
Output is correct |
6 |
Correct |
2 ms |
464 KB |
Output is correct |
7 |
Correct |
4 ms |
624 KB |
Output is correct |
8 |
Correct |
6 ms |
848 KB |
Output is correct |
9 |
Correct |
13 ms |
1436 KB |
Output is correct |
10 |
Correct |
1 ms |
336 KB |
Output is correct |
11 |
Correct |
9 ms |
1116 KB |
Output is correct |
12 |
Correct |
15 ms |
1500 KB |
Output is correct |
13 |
Correct |
12 ms |
1464 KB |
Output is correct |
14 |
Correct |
11 ms |
1488 KB |
Output is correct |
15 |
Correct |
39 ms |
3404 KB |
Output is correct |
16 |
Correct |
36 ms |
3404 KB |
Output is correct |
17 |
Correct |
33 ms |
3368 KB |
Output is correct |
18 |
Correct |
31 ms |
3196 KB |
Output is correct |
19 |
Correct |
37 ms |
3388 KB |
Output is correct |
20 |
Correct |
36 ms |
3452 KB |
Output is correct |
21 |
Correct |
29 ms |
3396 KB |
Output is correct |
22 |
Correct |
28 ms |
3272 KB |
Output is correct |
23 |
Correct |
37 ms |
3528 KB |
Output is correct |
24 |
Correct |
45 ms |
3496 KB |
Output is correct |
25 |
Correct |
33 ms |
3580 KB |
Output is correct |
26 |
Correct |
32 ms |
3420 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
208 KB |
Output is correct |
2 |
Correct |
0 ms |
208 KB |
Output is correct |
3 |
Correct |
1 ms |
208 KB |
Output is correct |
4 |
Correct |
1 ms |
208 KB |
Output is correct |
5 |
Correct |
1 ms |
336 KB |
Output is correct |
6 |
Correct |
2 ms |
464 KB |
Output is correct |
7 |
Correct |
4 ms |
624 KB |
Output is correct |
8 |
Correct |
6 ms |
848 KB |
Output is correct |
9 |
Correct |
13 ms |
1436 KB |
Output is correct |
10 |
Correct |
1 ms |
336 KB |
Output is correct |
11 |
Correct |
9 ms |
1116 KB |
Output is correct |
12 |
Correct |
15 ms |
1500 KB |
Output is correct |
13 |
Correct |
12 ms |
1464 KB |
Output is correct |
14 |
Correct |
11 ms |
1488 KB |
Output is correct |
15 |
Correct |
39 ms |
3404 KB |
Output is correct |
16 |
Correct |
36 ms |
3404 KB |
Output is correct |
17 |
Correct |
33 ms |
3368 KB |
Output is correct |
18 |
Correct |
31 ms |
3196 KB |
Output is correct |
19 |
Correct |
37 ms |
3388 KB |
Output is correct |
20 |
Correct |
36 ms |
3452 KB |
Output is correct |
21 |
Correct |
29 ms |
3396 KB |
Output is correct |
22 |
Correct |
28 ms |
3272 KB |
Output is correct |
23 |
Correct |
37 ms |
3528 KB |
Output is correct |
24 |
Correct |
45 ms |
3496 KB |
Output is correct |
25 |
Correct |
33 ms |
3580 KB |
Output is correct |
26 |
Correct |
32 ms |
3420 KB |
Output is correct |
27 |
Correct |
38 ms |
3676 KB |
Output is correct |
28 |
Correct |
39 ms |
3560 KB |
Output is correct |
29 |
Correct |
29 ms |
3620 KB |
Output is correct |
30 |
Correct |
28 ms |
3480 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
208 KB |
Output is correct |
2 |
Correct |
0 ms |
208 KB |
Output is correct |
3 |
Correct |
1 ms |
208 KB |
Output is correct |
4 |
Correct |
1 ms |
208 KB |
Output is correct |
5 |
Correct |
1 ms |
336 KB |
Output is correct |
6 |
Correct |
2 ms |
464 KB |
Output is correct |
7 |
Correct |
4 ms |
624 KB |
Output is correct |
8 |
Correct |
6 ms |
848 KB |
Output is correct |
9 |
Correct |
13 ms |
1436 KB |
Output is correct |
10 |
Correct |
1 ms |
336 KB |
Output is correct |
11 |
Correct |
9 ms |
1116 KB |
Output is correct |
12 |
Correct |
15 ms |
1500 KB |
Output is correct |
13 |
Correct |
12 ms |
1464 KB |
Output is correct |
14 |
Correct |
11 ms |
1488 KB |
Output is correct |
15 |
Correct |
39 ms |
3404 KB |
Output is correct |
16 |
Correct |
36 ms |
3404 KB |
Output is correct |
17 |
Correct |
33 ms |
3368 KB |
Output is correct |
18 |
Correct |
31 ms |
3196 KB |
Output is correct |
19 |
Correct |
37 ms |
3388 KB |
Output is correct |
20 |
Correct |
36 ms |
3452 KB |
Output is correct |
21 |
Correct |
29 ms |
3396 KB |
Output is correct |
22 |
Correct |
28 ms |
3272 KB |
Output is correct |
23 |
Correct |
37 ms |
3528 KB |
Output is correct |
24 |
Correct |
45 ms |
3496 KB |
Output is correct |
25 |
Correct |
33 ms |
3580 KB |
Output is correct |
26 |
Correct |
32 ms |
3420 KB |
Output is correct |
27 |
Correct |
38 ms |
3676 KB |
Output is correct |
28 |
Correct |
39 ms |
3560 KB |
Output is correct |
29 |
Correct |
29 ms |
3620 KB |
Output is correct |
30 |
Correct |
28 ms |
3480 KB |
Output is correct |
31 |
Correct |
37 ms |
3652 KB |
Output is correct |
32 |
Correct |
38 ms |
3692 KB |
Output is correct |
33 |
Correct |
31 ms |
3676 KB |
Output is correct |
34 |
Correct |
31 ms |
3620 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
208 KB |
Output is correct |
2 |
Correct |
0 ms |
208 KB |
Output is correct |
3 |
Correct |
1 ms |
208 KB |
Output is correct |
4 |
Correct |
1 ms |
208 KB |
Output is correct |
5 |
Correct |
1 ms |
336 KB |
Output is correct |
6 |
Correct |
2 ms |
464 KB |
Output is correct |
7 |
Correct |
4 ms |
624 KB |
Output is correct |
8 |
Correct |
6 ms |
848 KB |
Output is correct |
9 |
Correct |
13 ms |
1436 KB |
Output is correct |
10 |
Correct |
1 ms |
336 KB |
Output is correct |
11 |
Correct |
9 ms |
1116 KB |
Output is correct |
12 |
Correct |
15 ms |
1500 KB |
Output is correct |
13 |
Correct |
12 ms |
1464 KB |
Output is correct |
14 |
Correct |
11 ms |
1488 KB |
Output is correct |
15 |
Correct |
39 ms |
3404 KB |
Output is correct |
16 |
Correct |
36 ms |
3404 KB |
Output is correct |
17 |
Correct |
33 ms |
3368 KB |
Output is correct |
18 |
Correct |
31 ms |
3196 KB |
Output is correct |
19 |
Correct |
37 ms |
3388 KB |
Output is correct |
20 |
Correct |
36 ms |
3452 KB |
Output is correct |
21 |
Correct |
29 ms |
3396 KB |
Output is correct |
22 |
Correct |
28 ms |
3272 KB |
Output is correct |
23 |
Correct |
37 ms |
3528 KB |
Output is correct |
24 |
Correct |
45 ms |
3496 KB |
Output is correct |
25 |
Correct |
33 ms |
3580 KB |
Output is correct |
26 |
Correct |
32 ms |
3420 KB |
Output is correct |
27 |
Correct |
38 ms |
3676 KB |
Output is correct |
28 |
Correct |
39 ms |
3560 KB |
Output is correct |
29 |
Correct |
29 ms |
3620 KB |
Output is correct |
30 |
Correct |
28 ms |
3480 KB |
Output is correct |
31 |
Correct |
37 ms |
3652 KB |
Output is correct |
32 |
Correct |
38 ms |
3692 KB |
Output is correct |
33 |
Correct |
31 ms |
3676 KB |
Output is correct |
34 |
Correct |
31 ms |
3620 KB |
Output is correct |
35 |
Correct |
40 ms |
3740 KB |
Output is correct |
36 |
Correct |
47 ms |
3804 KB |
Output is correct |
37 |
Correct |
32 ms |
3692 KB |
Output is correct |
38 |
Correct |
35 ms |
3624 KB |
Output is correct |