比赛 NOIP模拟赛by mzx Day1 评测结果 WWWAAAAAAA
题目名称 为爱追寻 最终得分 70
用户昵称 cdcq 运行时间 5.569 s
代码语言 C++ 内存使用 18.34 MiB
提交时间 2016-10-19 19:18:17
显示代码纯文本
//不是单身狗不吃狗粮一v一
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int read(){int z=0,mark=1;  char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')mark=-1;  ch=getchar();}
	while(ch>='0'&&ch<='9'){z=(z<<3)+(z<<1)+ch-'0';  ch=getchar();}
	return z*mark;
}
const int mo=1000001;
int n,sx,sy,tx,ty;
struct ddc{int x,y;}hash[2100000];  bool use[2100000];
int nx,ny;
int ans=0;
bool found=false;
void go_hash(int x,int y){
	int c=((x*15978)%mo+(y*72839)%mo)%mo+mo;
	while(use[c] && hash[c].x!=x && hash[c].y!=y)  c++;
	if(!use[c]){  use[c]=true;  hash[c].x=x,hash[c].y=y;  ans++;}
}
int main(){
	//freopen("ddd.in","r",stdin);
	//freopen("ddd.out","w",stdout);
	freopen("loverfinding.in","r",stdin);
	freopen("loverfinding.out","w",stdout);
	memset(use,0,sizeof(use));
	cin>>n>>sx>>sy>>tx>>ty;
	nx=sx,ny=sy;
	go_hash(nx,ny);  if(nx==tx && ny==ty)  found=true;
	int _x,_y;
	for(int i=1;i<=n;i++){
		_x=read(),_y=read();
		if(!found){
			go_hash(nx+=_x,ny+=_y);
			if(nx==tx && ny==ty)  found=true;
		}
	}
	if(!found)  cout<<"SingleDogMZX"<<endl;
	else  cout<<ans<<endl;
	return 0;
}