#include <iostream>
using namespace std;
int a[6]={0,1,4,5,8,9};
int b[6]={2,3,6,7,10,11};
int getresult(int x,int y)
{
int result;
//% 12
//% 6
int div;
int modx;
int mody;
// 0 1 4 5 8 9
// 2 3 6 7 10 11
if(x==y)
{
div=x/6;
modx=x%6;
result=12*div+a[modx];
}else
{
div=(x-2)/6;
modx=(x-2)%6;
result=12*div+b[modx];
}
return result;
}
void func()
{
int n;
while(cin>>n)
{
for(int i=0;i<n;i++)
{
int x,y;
cin>>x>>y;
bool flag=false;
if(x==y||x-2==y)
flag=true;
if(flag)
cout<<getresult(x,y)<<endl;
else
cout<<"No Number"<<endl;
}
}
}
int main(int argc, char *argv[])
{
//printf("Hello, world\n");
func();
return 0;
}
-
题目描述:
-
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