记录编号 326497 评测结果 AAAAAAAAAE
题目名称 为爱追寻 最终得分 90
用户昵称 GravatarCydiater 是否通过 未通过
代码语言 C++ 运行时间 5.600 s
提交时间 2016-10-21 08:29:56 内存使用 17.48 MiB
显示代码纯文本
//A
//by Cydiater
//2016.10.19
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <queue>
#include <map>
#include <ctime>
#include <cmath>
#include <iomanip>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
#define ll long long
#define up(i,j,n)		for(int i=j;i<=n;i++)
#define down(i,j,n)		for(int i=j;i>=n;i--)
#define FILE "loverfinding"
#define pii pair<int,int>
#define x first
#define y second
#define mp make_pair
const int MAXN=1e6+5;
const int oo=0x3f3f3f3f;
const int mod=1265477;
const int STEP=6997;
inline int read(){
	char ch=getchar();int x=0,f=1;
	while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
	return x*f;
}
int N,stx,sty,ndx,ndy,ans=0;
pii HASH[MAXN<<1];
bool che[MAXN<<1];
namespace solution{
	int Hashit(pii t){
		int hashvalue=abs(((ll)t.x*(ll)t.y)%(ll)mod);
		hashvalue+=t.x;hashvalue-=t.y;(hashvalue+=STEP)%=mod;
		while(HASH[hashvalue]!=t&&che[hashvalue]!=0)(hashvalue+=STEP)%=mod;
		return hashvalue;
	}
	void insert(int hashvalue,pii t){
		che[hashvalue]=1;
		HASH[hashvalue]=t;
	}
	void slove(){
		memset(che,0,sizeof(che));
		N=read();stx=read();sty=read();ndx=read();ndy=read();
		insert(Hashit(mp(stx,sty)),mp(stx,sty));ans=1;
		if(stx==ndx&&sty==ndy){
			puts("1");
			return;
		}
		up(i,1,N){
			int dx=read(),dy=read();
			stx+=dx;sty+=dy;
			int tmp=Hashit(mp(stx,sty));
			if(che[tmp]==0){
				ans++;
				insert(tmp,mp(stx,sty));
			}
			if(stx==ndx&&sty==ndy){
				cout<<ans<<endl;
				return;
			}
		}
		puts("SingleDogMZX");
	}
}
int main(){
	freopen(FILE".in","r",stdin);
	freopen(FILE".out","w",stdout);
	using namespace solution;
	slove();
	//cout<<"Time has passed:"<<1.0*clock()/1000<<"s!"<<endl;
	return 0;
}