比赛 NOIP模拟赛by mzx Day1 评测结果 TTTTTTTTTT
题目名称 为爱追寻 最终得分 0
用户昵称 ciyou 运行时间 10.019 s
代码语言 C++ 内存使用 7.94 MiB
提交时间 2016-10-19 21:45:28
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<vector>
#include<map>
#define ll long long
#define L 1000000000
using namespace std;
map<long long,int> vis1,vis2,vis3,vis4;
int n,x,y,xt,yt,ans=1;
int minn=20000000000,maxn=-20000000000;
struct movement{
	int x, y;
}m[1000005];

int check(int p,long long num){
	int* k;
	if(p==1) k=&vis1[num];
	if(p==2) k=&vis2[num];
	if(p==3) k=&vis3[num];
	if(p==4) k=&vis4[num];
	if(*k==314) return 0;
	else{
		*k=314;
		return 1;
	}
	return 0;
}


int main(){
	freopen("loverfinding.in","r",stdin);
	freopen("loverfinding.out","w",stdout);
	scanf("%d%d%d%d%d",&n,&x,&y,&xt,&yt);
	for(int i=1;i<=n;i++){
		int a,b;
		scanf("%d%d",&a,&b);
		x+=a;
		y+=b;
		if(x>=0){
			if(y>=0) ans+=check(1,(ll)y*(ll)L+(ll)x);
			else ans+=check(4,(ll)(-y)*(ll)L+(ll)x);
		}else{
			if(y>=0) ans+=check(2,(ll)y*(ll)L-(ll)x);
			else ans+=check(3,(ll)(-y)*(ll)L-(ll)x);
		}
		if(x==xt&&y==yt){
			printf("%d",ans);
			fclose(stdin);
			fclose(stdout);
			return 0;
		}
	}
	printf("SingleDogMZX");
	fclose(stdin);
	fclose(stdout);
	return 0;
}