比赛 |
NOIP模拟赛by mzx Day1 |
评测结果 |
TTTTTTTTTT |
题目名称 |
为爱追寻 |
最终得分 |
0 |
用户昵称 |
ciyou |
运行时间 |
10.019 s |
代码语言 |
C++ |
内存使用 |
7.94 MiB |
提交时间 |
2016-10-19 21:45:28 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<vector>
#include<map>
#define ll long long
#define L 1000000000
using namespace std;
map<long long,int> vis1,vis2,vis3,vis4;
int n,x,y,xt,yt,ans=1;
int minn=20000000000,maxn=-20000000000;
struct movement{
int x, y;
}m[1000005];
int check(int p,long long num){
int* k;
if(p==1) k=&vis1[num];
if(p==2) k=&vis2[num];
if(p==3) k=&vis3[num];
if(p==4) k=&vis4[num];
if(*k==314) return 0;
else{
*k=314;
return 1;
}
return 0;
}
int main(){
freopen("loverfinding.in","r",stdin);
freopen("loverfinding.out","w",stdout);
scanf("%d%d%d%d%d",&n,&x,&y,&xt,&yt);
for(int i=1;i<=n;i++){
int a,b;
scanf("%d%d",&a,&b);
x+=a;
y+=b;
if(x>=0){
if(y>=0) ans+=check(1,(ll)y*(ll)L+(ll)x);
else ans+=check(4,(ll)(-y)*(ll)L+(ll)x);
}else{
if(y>=0) ans+=check(2,(ll)y*(ll)L-(ll)x);
else ans+=check(3,(ll)(-y)*(ll)L-(ll)x);
}
if(x==xt&&y==yt){
printf("%d",ans);
fclose(stdin);
fclose(stdout);
return 0;
}
}
printf("SingleDogMZX");
fclose(stdin);
fclose(stdout);
return 0;
}