有一个由 n*m(n是行数,m为列数) 的方格组成的矩形阵列。
现在从左上角开始顺时针旋转走动,遇到矩形边框或者遇到已经过的方格就转向继续,直到走完所有方格。求最后结束点的坐标(横坐标位置从1到m,纵坐标从1到n)。
矩阵回旋,要比较输入的两个数的大小,按小的来走,然后判断小的的奇偶性。
#include<stdio.h>
int nn,mm;
int p(int a,int b)
{
if(a%2)
{
nn=(a+1)/2;
mm=b-(a/2);
}
}
int main()
{
int t,n,m;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
if(n<=m)
{
if(n%2==0)
{
printf("%d %d\n",n/2+1,n/2);
}
else
{
p(n,m);
printf("%d %d\n",nn,mm);
}
}
else
{
if(m%2==0)
{
printf("%d %d\n",m/2+1,m/2);
}
else
{
p(m,n);
printf("%d %d\n",mm,nn);
}
}
}
return 0;
}
int nn,mm;
int p(int a,int b)
{
if(a%2)
{
nn=(a+1)/2;
mm=b-(a/2);
}
}
int main()
{
int t,n,m;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
if(n<=m)
{
if(n%2==0)
{
printf("%d %d\n",n/2+1,n/2);
}
else
{
p(n,m);
printf("%d %d\n",nn,mm);
}
}
else
{
if(m%2==0)
{
printf("%d %d\n",m/2+1,m/2);
}
else
{
p(m,n);
printf("%d %d\n",mm,nn);
}
}
}
return 0;
}