记录编号 326378 评测结果 AAAAAAATAT
题目名称 为爱追寻 最终得分 80
用户昵称 Gravatargls1196 是否通过 未通过
代码语言 C++ 运行时间 8.184 s
提交时间 2016-10-21 07:37:48 内存使用 82.68 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#include<ctime>
#include<cstdlib>
#include<stack>
#include<queue>
using namespace std;
typedef long long ll;
const ll maxp=3000009;
ll he[maxp+100],cnt;
struct Hash{
	ll x,y,nx;
	Hash(){;}
	Hash(int _x,int _y,int _nx){
		x=_x;y=_y;nx=_nx;
	}
}h[maxp+200];
void Add(ll x,ll y){
	ll p=((x*x+y*y)%maxp+maxp)%maxp;
	h[++cnt]=Hash(x,y,he[p]);
	he[p]=cnt;
}
bool Find(ll x,ll y){
	ll p=((x*x+y*y)%maxp+maxp)%maxp;
	for(int i=he[p];i;i=h[i].nx){
		if(x==h[i].x&&y==h[i].y)return 1;
	}
	return 0;
}
int main(){
	freopen("loverfinding.in","r",stdin);	
	freopen("loverfinding.out","w",stdout);
	ll n,sx,sy,tx,ty,dx,dy;int ans=1;
	scanf("%lld%lld%lld%lld%lld",&n,&sx,&sy,&tx,&ty);
	Add(sx,sy);bool ok=0;
	if(sx==tx&&sy==ty){
		printf("1");return 0;
	}
	else {
		while(n--){
			scanf("%lld%lld",&dx,&dy);
			sx+=dx,sy+=dy;
			if(!Find(sx,sy))ans++;
			Add(sx,sy);	
			if(sx==tx&&sy==ty){
				ok=1;break;
			}
		}
	}
	if(!ok)printf("SingleDogMZX");
	else printf("%d",ans);
}