B:Number Steps
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
Starting from point (0,0) on a plane, we have written all non-negative integers 0,1,2, ... as shown in the figure. For example, 1, 2, and 3 has been written at points (1,1), (2,0), and (3, 1) respectively and this pattern has continued.
You are to write a program that reads the coordinates of a point (x, y), and writes the number (if any) that has been written at that point. (x, y) coordinates in the input are in the range 0...5000.
输入
- The first line of the input is N, the number of test cases for this problem. In each of the N following lines, there is x, and y representing the coordinates (x, y) of a point. 输出
- For each point in the input, write the number written at that point or write No Number if there is none. 样例输入
-
3 4 2 6 6 3 4
样例输出
-
6 12 No Number
#include<iostream>
using namespace std;
int Query(int a,int b){
int m=0,n=0,sum=0;
while(true){
if(m==a&&n==b)
break;
else{
sum++;
int b=sum%4;
switch(b){
case 0:
m--;
n++;
break;
case 1:
case 3:
m++;
n++;
break;
case 2:
m++;
n--;
break;
}
}
}
return sum;
}
int main(){
int n,x,y;
cin>>n;
for(int i=0;i<n;i++){
cin>>x>>y;
if(y==x||y==(x-2))
cout<<Query(x,y)<<endl;
else{
cout<<"No Number"<<endl;
}
}
return 0;
}