熊恒锐 • 11天前
#include <bits/stdc++.h>
using namespace std;
int n, x, y;
void solve(int x1, int y1, int x2, int y2, int x, int y) {
int l1 = (x1 + x2) / 2;
int l2 = (y1 + y2) / 2;
int lose;
if (x <= l1 && y <= l2) {
lose = 1;
cout << l1 + 1 << " " << l2 + 1 << " 1" << endl;
} else if (x > l1 && y <= l2) {
lose = 3;
cout << l1 << " " << l2 + 1 << " 3" << endl;
} else if (x <= l1 && y > l2) {
lose = 2;
cout << l1 + 1 << " " << l2 << " 2" << endl;
} else if (x > l1 && y > l2) {
lose = 4;
cout << l1 << " " << l2 << " 4" << endl;
}
if (x2 - x1 > 1) {
if (lose == 1)
solve(x1, y1, l1, l2, x, y);
else
solve(x1, y1, l1, l2, l1, l2);
if (lose == 2)
solve(x1, l2 + 1, l1, y2, x, y);
else
solve(x1, l2 + 1, l1, y2, l1, l2 + 1);
if (lose == 3)
solve(l1 + 1, y1, x2, l2, x, y);
else
solve(l1 + 1, y1, x2, l2, l1 + 1, l2);
if (lose == 4)
solve(l1 + 1, l2 + 1, x2, y2, x, y);
else
solve(l1 + 1, l2 + 1, x2, y2, l1 + 1, l2 + 1);
}
}
int main() {
cin >> n >> x >> y;
solve(1, 1, 1 << n, 1 << n, x, y);
return 0;
}
评论:
请先登录,才能进行评论