UVALive 2052 Number Steps【简单模拟】水题
2016-07-21 17:58
483 查看
A - Number Steps
Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld
& %llu
Submit Status
Description
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.
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.
Sample Input
3
4 2
6 6
3 4
Sample Output
6
12
No Number
题目大意:按照图中所示方式排布数字,问点x,y是否有数字,如果有,输出,否则输出没有。
思路:
简单模拟。
Ac代码:
#include<stdio.h>
#include<string.h>
using namespace std;
int a[5005][5005];
void init()
{
int x=1,y=1;
int tmp=1;
int d=3;
memset(a,0,sizeof(a));
while(1)
{
a[x][y]=tmp;
x++;y++;
tmp+=d;
if(d==3)d=1;
else d=3;
if(x>5002||y>5002)break;
}
x=2;y=0;
tmp=2;
d=1;
while(1)
{
a[x][y]=tmp;
x++;y++;
tmp+=d;
if(d==3)d=1;
else d=3;
if(x>5002||y>5002)break;
}
}
int main()
{
init();
int t;
scanf("%d",&t);
while(t--)
{
int x,y;
scanf("%d%d",&x,&y);
if(x==0&&y==0)
{
printf("0\n");
continue;
}
if(a[x][y]==0)
{
printf("No Number\n");
}
else printf("%d\n",a[x][y]);
}
}
Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld
& %llu
Submit Status
Description
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.
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.
Sample Input
3
4 2
6 6
3 4
Sample Output
6
12
No Number
题目大意:按照图中所示方式排布数字,问点x,y是否有数字,如果有,输出,否则输出没有。
思路:
简单模拟。
Ac代码:
#include<stdio.h>
#include<string.h>
using namespace std;
int a[5005][5005];
void init()
{
int x=1,y=1;
int tmp=1;
int d=3;
memset(a,0,sizeof(a));
while(1)
{
a[x][y]=tmp;
x++;y++;
tmp+=d;
if(d==3)d=1;
else d=3;
if(x>5002||y>5002)break;
}
x=2;y=0;
tmp=2;
d=1;
while(1)
{
a[x][y]=tmp;
x++;y++;
tmp+=d;
if(d==3)d=1;
else d=3;
if(x>5002||y>5002)break;
}
}
int main()
{
init();
int t;
scanf("%d",&t);
while(t--)
{
int x,y;
scanf("%d%d",&x,&y);
if(x==0&&y==0)
{
printf("0\n");
continue;
}
if(a[x][y]==0)
{
printf("No Number\n");
}
else printf("%d\n",a[x][y]);
}
}
相关文章推荐
- UVALive 4244 Party Party Party(HDU 2779 && Sicily 1663)
- UVALive 6741 The Sacrificial Firepits
- UVALive 5870 - Smooth Visualization
- UVALive 5876 - Writings on the Wall 【KMP】
- UVALive 5878 - Shortest Leash 【计算几何】
- UVALive 5873 - Tree Inspections 【模拟】
- UVALive 6800 The Mountain of Gold (bellman_ford判负环)
- UVALive 6436 The Busiest City
- Uvalive 6855 Banks
- Uvalive 7150 Amalgamated Artichokes
- Uvalive 4954 Lawn mower
- Uvalive 6832 Bit String Reordering
- Uvalive 6398 Low Power
- Uvalive 6929 Sums
- UVALive 5913 【NEERC 2011 K】 Kingdom Roadmap
- UVALive 6886
- UVALive 7146 Defeat the Enemy (贪心)
- UVALive 6582 Magical GCD
- uvalive 5873
- UVALive 5135 - Mining Your Own Business(点双连通)