游客 Signup | Login
中文 | En

1610 - Number Steps

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.

<span style="font-family:宋体;font-size:10.5pt;">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.</span> 

Input

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.

Output

For each point in the input, write the number written at that point or write No Number if there is none.

Examples

Input

3
1 1
14 12
62 63

Output

1
26
No Number

Solution C

#include<stdio.h>
int main()
{   
    int t,b,a;
    while(scanf("%d",&t)!=EOF)
	{ 
        while(t--)
		{
            scanf("%d%d",&a,&b);
			if(a==b)
			{
				if(a%2==0)
					printf("%d\n",a*2);
				if(a%2==1)
					printf("%d\n",a*2-1);
			}
			else if(a-2==b)
			{
				if(a%2==0)
					printf("%d\n",a*2-2);
				if(a%2==1)
					printf("%d\n",a*2-3);
			}
			else
				printf("No Number\n");
        }
    }
  return 0;
}

Solution C++

#include <stdio.h>
#include <stdlib.h>

struct coordinate
{
        int x;
        int y;
};

int main()
{
        struct coordinate *cde;
        int i, n;

        while(scanf("%d", &n) != EOF)
        {
                //初始化结构体数组
                cde =(coordinate*) (malloc(sizeof(struct coordinate) * n));

                //接收坐标点
                for(i = 0; i < n; i ++)
                {
                        scanf("%d %d", &cde[i].x, &cde[i].y);
                }

                //判断打印输出
                for(i = 0; i < n; i ++)
                {
                        if(cde[i].x == cde[i].y)
                        {
                                printf("%d\n", 4 * (cde[i].y / 2) + cde[i].y % 2);
                        }else if(cde[i].x - 2 == cde[i].y)
                        {
                                printf("%d\n", 4 * (cde[i].y / 2) + cde[i].y % 2 + 2);
                        }else
                        {
                                printf("No Number\n");
                        }
                }
        }
}
Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题