记录编号 |
326497 |
评测结果 |
AAAAAAAAAE |
题目名称 |
为爱追寻 |
最终得分 |
90 |
用户昵称 |
Cydiater |
是否通过 |
未通过 |
代码语言 |
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;
}