有点像蛇形矩阵,暴力模拟一下这个过程就好了。先右再上再左再下的顺序。
#include<bits/stdc++.h>
using namespace std;
int a[1005][1005];
int main()
{
int n,m;cin>>n>>m;
int x=1,y=1;
while(m>0)
{
while(m>0&&x+1<=n&&a[x+1][y]==0)
{
x++;m--;a[x][y]=1;
}
while(m>0&&y+1<=n&&a[x][y+1]==0)
{
y++;m--;a[x][y]=1;
}
while(m>0&&x-1>=1&&a[x-1][y]==0)
{
x--;m--;a[x][y]=1;
}
while(m>0&&y-1>=2&&a[x][y-1]==0)
{
y--;m--;a[x][y]=1;
}
}
cout<<x<<" "<<y<<endl;
return 0;
}