-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathA. Bitwise Operation Wizard.cpp
71 lines (62 loc) · 1.05 KB
/
A. Bitwise Operation Wizard.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <bits/stdc++.h>
using namespace std;
#define ll long long
void query(ll a, ll b, ll c, ll d)
{
cout << "? " << a << " " << b << " " << c << " " << d << endl;
}
int main()
{
ll t;
cin >> t;
while (t--)
{
ll n;
cin >> n;
// if (n == 2)
// {
// cout << "! 0 1" << endl;
// continue;
// }
ll z = 0;
for (int i = 1; i < n; i++)
{
query(z, z, i, i);
string res;
cin >> res;
// cout<<res<<" ";
if (res == "<")
{
z = i;
}
}
cout<<endl;
cout<<z;
cout<<endl;
ll mx = 0;
for (int i = 1; i < n; i++)
{
// query(z, mx, z, i);
cout<<z<<" "<<mx<<" "<<i<<endl;
string res;
cin >> res;
// cout<<res<<" ";
if (res == "<")
{
mx = i;
}
else if (res == "=")
{
// query(mx, mx, i, i);
string res;
cin >> res;
if (res == ">")
{
mx = i;
}
}
}
cout<<endl;
// cout << "! " << mx << " " << z << endl;
}
}