大佬求调 下面是我代码
#include <bits/stdc++.h>
using namespace std;
long long x,y,a = 1,b = 1,len;
int fun(int k)
{
int sum = 1;
for (int i = 1;i <= k;i++)
{
sum *= 2;
}
return sum;
}
void solve(long long x,long long y,long long a,long long b,long long len)
{
if (len == 1)
{
return;
}
if (x - a <= len / 2 - 1 &&y - b <= len / 2 - 1)
{
printf("%d %d ", a + len/2,b+len/2);
cout<<"1"<<endl;
solve(x,y,a,b,len/2);
solve(a+len/2,b+len/2-1,a+len/2,b,len/2);
solve(a+len/2-1,b+len/2,a,b+len/2,len/2);
solve(a+len/2,b+len/2,a+len/2,b+len/2,len/2);
}
else if(x - a > len / 2 - 1&& y - b <= len / 2 - 1)
{
printf("%d %d ", a + len/2-1,b+len/2);
cout<<"2"<<endl;
solve(x,y,a,b+len/2,len/2);
solve(a+len/2-1,b+len/2-1,a,b,len/2);
solve(a+len/2-1,b+len/2,a,b+len/2,len/2);
solve(a+len/2,b+len/2,a+len/2,b+len/2,len/2);
}
else if (x - a > len / 2 - 1&& y - b > len / 2 - 1)
{
printf("%d %d ", a + len/2,b+len/2-1);
cout<<"3"<<endl;
solve(x,y,a+len/2-1,b+len/2,len/2);
solve(a+len/2,b+len/2-1,a+len/2,b,len/2);
solve(a+len/2-1,b+len/2-1,a,b,len/2);
solve(a+len/2,b+len/2,a+len/2,b+len/2,len/2);
}
else if (x - a <= len / 2 - 1&& y - b > len / 2 - 1)
{
printf("%d %d ", a + len/2-1,b+len/2-1);
cout<<"4"<<endl;
solve(x,y,a+len/2,b+len/2,len/2);
solve(a+len/2,b+len/2-1,a+len/2,b,len/2);
solve(a+len/2-1,b+len/2-1,a,b,len/2);
solve(a+len/2-1,b+len/2,a,b+len/2,len/2);
}
}