您的位置:首页 > 其它

山东理工大学-2012秋季ACM集训队测试赛4-I-矩形回旋

2012-12-08 18:12 225 查看
有一个由 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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: