记录编号 326566 评测结果 AAAAAAAAAE
题目名称 为爱追寻 最终得分 90
用户昵称 Gravatar要要要不吃药 是否通过 未通过
代码语言 C++ 运行时间 7.265 s
提交时间 2016-10-21 10:05:10 内存使用 95.73 MiB
显示代码纯文本
 #include<cstdio>
using namespace std;
int a[2501][2501]={0},b[2501][2501]={0},c[2501][2501]={0},d[2501][2501]={0},n,x0,y0,xt,yt,s=1;
bool love=0;
void origin(int x,int y){
if(x>=0){
if(y>=0){
a[x][y]=1;
return;}
if(y<0){
d[x][-y]=1;
return;}}
if(x<0){
if(y>=0){
b[-x][y]=1;
return;}
if(y<0){
c[-x][-y]=1;
return;}}
}
void destination(int x,int y){
if(x>=0){
if(y>=0){
a[x][y]=2;
return;}
if(y<0){
d[x][-y]=2;
return;}}
if(x<0){
if(y>=0){
b[-x][y]=2;
return;}
if(y<0){
c[-x][-y]=2;
return;}}
}
void check(int x,int y){
if(x>=0){
if(y>=0){
if(a[x][y]==0||a[x][y]==2){
s++;
if(a[x][y]==0){
a[x][y]=1;
return;}
else{
love=1;
return;}}}
if(y<0){
if(d[x][-y]==0||d[x][-y]==2){
s++;
if(d[x][-y]==0){
d[x][-y]=1;
return;}
else{
love=1;
return;}}}
}
if(x<0){
if(y>=0){
if(b[-x][y]==0||b[-x][y]==2){
s++;
if(b[-x][y]==0){
b[-x][y]=1;
return;}
else{
love=1;
return;}}}
if(y<0){
if(c[-x][-y]==0||c[-x][-y]==2){
s++;
if(c[-x][-y]==0){
c[-x][-y]=1;
return;}
else{
love=1;
return;}}}
}
}
int main(){
freopen("loverfinding.in","r",stdin);
freopen("loverfinding.out","w",stdout);
scanf("%d%d%d%d%d",&n,&x0,&y0,&xt,&yt);
origin(x0,y0);
destination(xt,yt);
if(x0==xt&&y0==yt){
printf("1");
return 0;}
int i,p,q,e,f;
p=x0;
q=y0;
for(i=1;i<=n;i++){
scanf("%d%d",&e,&f);
p+=e;
q+=f;
check(p,q);
if(love)break;
}
if(!love){
printf("SingleDogMZX");
return 0;}
printf("%d",s);
return 0;
}