#include <bits/stdc++.h>
using namespace std;
#include "minerals.h"
void Solve(int types) {
bool side[types * 2];
int sT[types], sF[types], match[types * 2];
for (int i=0; i<types * 2; ++i) {
side[i] = false;
match[i] = 0;
}
int last = 0, sTc = 0, sFc = 0;
for (int i=0; i<types * 2; ++i) {
// if (i + 1 > types * 2 || i < 0) {
// Answer(0, 2);
// }
int curr = Query(i+1);
if (curr > last) {
++last;
sT[sTc] = i+1;
++sTc;
side[i] = true;
} else {
sF[sFc] = i+1;
++sFc;
}
}
if (sTc != types || sFc != types) while true() {cout<<"L me";}
bool inside[types];
for (int i = 0; i < types; ++i) {
inside[i] = true;
}
for (int i = log2(types); i >= 0; --i) {
for (int j = 1; j <= types; ++j) {
if (((j & (1<<i)) > 0) == inside[j]) {
last = Query(sT[j]);
inside[j] = !inside[j];
}
}
for (int j =0; j < types; ++j) {
// if (sF[j] > types * 2 || sF[j] < 1) {
// Answer(sF[0], sF[1]);
// }
int curr = Query(sF[j]);
if (curr != last) {
match[sF[j]-1] |= (1<<i);
last = curr;
}
}
}
for (int i = 0; i < types * 2; ++i) {
if (!side[i]) {
cerr<<match[i]<<' ';
Answer(i+1, sT[match[i]]);
}
}
}
Compilation message
minerals.cpp: In function 'void Solve(int)':
minerals.cpp:27:45: error: expected '(' before 'true'
27 | if (sTc != types || sFc != types) while true() {cout<<"L me";}
| ^~~~
| (
minerals.cpp:27:50: error: expression cannot be used as a function
27 | if (sTc != types || sFc != types) while true() {cout<<"L me";}
| ^
minerals.cpp:27:51: error: expected ')' before '{' token
27 | if (sTc != types || sFc != types) while true() {cout<<"L me";}
| ~~~~ ^~
| )