矩形回旋
Description
有一个由 n*m(n是行数,m为列数) 的方格组成的矩形阵列。
现在从左上角开始顺时针旋转走动,遇到矩形边框或者遇到已经过的方格就转向继续,直到走完所有方格。求最后结束点的坐标(横坐标位置从1到m,纵坐标从1到n)。
Input
第一行输入一个数T代表测试数据个数(T<=20)。接下来T行每行两个正整数n,m ( 0 < n,m < 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;
}