SDUST - 1437 - Problem 3 矩形回旋 (朗讯杯)

矩形回旋

Description

有一个由 n*m(n是行数,m为列数的方格组成的矩形阵列。

现在从左上角开始顺时针旋转走动,遇到矩形边框或者遇到已经过的方格就转向继续,直到走完所有方格。求最后结束点的坐标(横坐标位置从1m,纵坐标从1n)

Input

第一行输入一个数T代表测试数据个数(T<=20)。接下来T行每行两个正整数nm ( 0 < nm < 2^31)

Output

对于每个输入n,m,输出最后的坐标(中间输出一个空格)。每行输出一个结果。

Sample Input

13 3

Sample Output

2 2



#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    int T; cin >> T;
    while(T--){
        int n, m, r, c; cin >> n >> m;
        if(n <= m){
            if(n % 2 == 0){
                r = n / 2 + 1;
                c = n / 2;
            }
            else{
                r = n / 2 + 1;
                c = m - r + 1;
            }
        }
        else{
            if(m % 2 == 0){
                r = m / 2 + 1;
                c = m / 2;
            }
            else{
                r = n - m / 2;
                c = m / 2 + 1;
            }
        }
        printf("%d %d\n", r, c);
    }
    return 0;
}


posted @ 2015-01-20 10:24  Popco  阅读(139)  评论(0编辑  收藏  举报