比赛 NOIP模拟赛by mzx Day1 评测结果 AAAAAAAAAA
题目名称 为爱追寻 最终得分 100
用户昵称 infinityedge 运行时间 5.837 s
代码语言 C++ 内存使用 27.77 MiB
提交时间 2016-10-19 19:22:28
显示代码纯文本
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;
typedef long long ll;
const int w=2001412+1;
struct wn{
	int x,y,nxt;
}hs[w+105];
int n,xx,yy,xt,yt,cnt=1,ans=1,head[w+105],hcnt=0;
void add(int x,int y){
	ll res=((x*y)%w+w)%w;
	hcnt++;
	hs[hcnt].x=x;
	hs[hcnt].y=y;
	hs[hcnt].nxt=head[res];
	head[res]=hcnt;
}
bool pd(int x,int y){
	ll res=((x*y)%w+w)%w;
	bool b=1;
	for(int i=head[res];i;i=hs[i].nxt){
		if(hs[i].x==x&&hs[i].y==y){
			b=0;
			break;
		}
	}
	return b;
}
int main(){
	freopen("loverfinding.in","r",stdin);
	freopen("loverfinding.out","w",stdout);
	scanf("%d%d%d%d%d",&n,&xx,&yy,&xt,&yt);
	add(xx,yy);
	int x,y;
	while(cnt<=n&&(xx!=xt||yy!=yt)){
		scanf("%d%d",&x,&y);
		xx+=x;
		yy+=y;
		if(pd(xx,yy)){
			ans++;
			add(xx,yy);
		}
		cnt++;
	}
	if(xx!=xt&&yy!=yt){
		printf("SingleDogMZX");
		return 0;
	}
	printf("%d",ans);
	return 0;
}