记录编号 |
326712 |
评测结果 |
AAAAAAAAAA |
题目名称 |
为爱追寻 |
最终得分 |
100 |
用户昵称 |
Marvolo |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
8.118 s |
提交时间 |
2016-10-21 13:29:16 |
内存使用 |
229.20 MiB |
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<iostream>
#define Key 20000001
using namespace std;
int n,x0,y0,xt,yt,ans=0;
struct Marvolo {
int x,y;
bool bh;
}hash[20000010];
inline int read(){
int f=1,p=0; char c=getchar();
while (c<'0'||c>'9') {if (c=='-') f=-1; c=getchar();}
while (c>='0'&&c<='9') p=p*10+c-48,c=getchar();
return f*p;
}
inline void Hash(int a,int b){
long long t=0;
t=(a+b+a*b)%Key;
t=(t+a*t+b*t)%Key;
t=(t+a*17+b*23+t*7)%Key;
if (t<0) t=(t+Key)%Key;
while (hash[t].bh&&(hash[t].x!=a||hash[t].y!=b)) t=(t+1)%Key;
if (hash[t].bh==1) return;
ans++; hash[t].x=a; hash[t].y=b; hash[t].bh=1;
}
int main(){
freopen("loverfinding.in","r",stdin);
freopen("loverfinding.out","w",stdout);
n=read(); x0=read(); y0=read(); xt=read(); yt=read();
Hash(x0,y0);
if (x0==xt&&y0==yt) goto END;
while (n--){
x0+=read(); y0+=read();
Hash(x0,y0);
if (x0==xt&&y0==yt) goto END;
}
printf("SingleDogMZX\n");
return 0;
END:
printf("%d\n",ans);
return 0;
}