比赛 |
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;
}