#include "minerals.h"
#include <bits/stdc++.h>
using namespace std;
void Solve(int N) {
int a = 0;
int b = 0;
//vector<vector<int>> res(2 * N + 1, vector<int>(15, 0));
vector<int> arr(2 * N + 1, 0);
vector<int> res(2 * N + 1, 1);
for(int k = 0; k <= 14; k ++){
for(int i = 0; i <= 2 * N; i ++){
if(k > 0){
if(i & (1 << k)){
if(i & (1 << (k - 1))){} else {
a = Query(i);
arr[i] ^= 1;
}
} else {
if(i & (1 << (k - 1))){
a = Query(i);
arr[i] ^= 1;
}
}
} else {
if(i & (1 << 0)){
a = Query(i);
arr[i] ^= 1;
}
}
//if(not i & (1 << k) and i & (1 << (k - 1))){
// a = Query(i);
//}
}
for(int i = 1; i <= 2 * N; i ++){
//cout << arr[i];
b = Query(i);
if(a == b){
// Then b is paired with something where the kth bit is 1
//res[a][k] = 1;
res[i] += (1 << k);
}
b = Query(i);
}
//cout << "\n";
for(int i = 1; i <= 2 * N; i ++){
if(i & (1 << k)){
//a = Query(i);
//arr[i] ^= 1;
}
}
}
/*
N queries to set up
2N queries for each one
N queries to remove
Repeat all log(n) times
N / 2 queries to set up
4N queries for each one
Repeat log(n) times
= 4N * 15
*/
set<pair<int, int>> ans;
for(int i = 0; i < res.size(); i ++){
ans.insert({min(i , res[i] -1), max(i , res[i] - 1)});
//Answer(i, res[i]);
}
for(auto itx = ++ans.begin(); itx != ans.end(); ++itx){
////Answer((*itx).first, (*itx).second);
//cout << (*itx).first << " " << (*itx).second << "\n";
}
}
/*
g++ -std=gnu++17 -O2 -Wall -pipe -static -o minerals grader.cpp minerals.cpp
4
1 5
2 6
3 4
7 8
*/
Compilation message
minerals.cpp: In function 'void Solve(int)':
minerals.cpp:69:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
69 | for(int i = 0; i < res.size(); i ++){
| ~~^~~~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
208 KB |
Wrong Answer [6] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
336 KB |
Wrong Answer [6] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
208 KB |
Wrong Answer [6] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
208 KB |
Wrong Answer [6] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
208 KB |
Wrong Answer [6] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
208 KB |
Wrong Answer [6] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
208 KB |
Wrong Answer [6] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
208 KB |
Wrong Answer [6] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
208 KB |
Wrong Answer [6] |
2 |
Halted |
0 ms |
0 KB |
- |