很坑,用例会给一个n,告诉下面有几个坐标 ,实际测试不会给,导致数据错误
#include<bits/stdc++.h>
using namespace std;
/*
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.
*/
int get_num(int y,int x)
{ if(x<=1;y<=1){
if(x==y){return x;}
else return -1;
}
if(y%2==0)//even
{
if(x==y){return y*2;}
else if(x==y-2){return y*2-2;}
else return -1;
}
else //odd
{
if(x==y){return y*2-1;}
else if(x==y-2){return y*2-3;}
else return -1;
}
}
int main(){
map<pair<int,int>,int>m;
int n;//cin>>n;
int x,y;
while(cin>>x>>y)
{
int ans=get_num(x,y);
if(ans==-1){cout<<"No Number"<<endl;}
else if(ans>0){cout<<ans<<endl;}
}
return 0;}