记录编号 |
327074 |
评测结果 |
AAAAAAAAAA |
题目名称 |
为爱追寻 |
最终得分 |
100 |
用户昵称 |
Hzoi_chairman |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
7.256 s |
提交时间 |
2016-10-21 19:37:20 |
内存使用 |
7.94 MiB |
显示代码纯文本
/*
Name: 为爱追寻
Copyright:
Author: chairman
Date: 21/10/16 19:37
Description: 居然故意卡掉map,用将之前走过的点排序,然后就可以去重了
*/
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstdio>
using namespace std;
int read()
{
int x,f=1;
char ch;
while(ch=getchar(),!isdigit(ch))if(ch=='-')f=-1;
x=ch-48;
while(ch=getchar(),isdigit(ch))x=x*10+ch-48;
return x*f;
}
void write(int x)
{
if(x<0)putchar('-'),x=-x;
int cnt=0;char ch[50];
while(ch[++cnt]=x%10+48,x/=10);
while(putchar(ch[cnt]),--cnt);
putchar('\n');
}
#define maxn 1000100
struct node
{
int x,y;
}a[maxn];
bool com(const node & a,const node & b)
{
if(a.x==b.x)return a.y<b.y;
return a.x<b.x;
}
int main()
{
freopen("loverfinding.in","r",stdin);
freopen("loverfinding.out","w",stdout);
int n=read(),x1=read() ,y1=read(),x2=read(),y2=read(),cnt=1,ans=0;
a[1].x=x1;a[1].y=y1;
if(x1!=x2||y1!=y2)
for(int i=2;i<=n+1;i++)
{
int x=read(),y=read();cnt++;
a[i].x=a[i-1].x+x;a[i].y=a[i-1].y+y;
if(a[i].x==x2&&a[i].y==y2)break;
}
if(a[cnt].x!=x2||a[cnt].y!=y2)puts("SingleDogMZX");
else
{
sort(a+1,a+1+cnt,com);
for(int i=1;i<=cnt;i++)if(a[i].x!=a[i-1].x||a[i].y!=a[i-1].y)ans++;
if(a[1].x==0&&a[1].y==0)ans++;//注意起点是(0,0)的情况
write(ans);
}
// system("pause");
// fclose(stdin);
// fclose(stdout);
}