记录编号 |
326950 |
评测结果 |
AAAAAAAAAA |
题目名称 |
为爱追寻 |
最终得分 |
100 |
用户昵称 |
dududu |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
7.391 s |
提交时间 |
2016-10-21 17:56:44 |
内存使用 |
7.15 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
/*
第一行五个整数n,x0,y0,xt,yt,分别代表学姐移动的次数和学长桌子的坐标。
接下来n行,第i行两个整数dx,dy,代表学姐第i次移动沿与x/y轴平行的方向移动了dx/dy个单位。
如果dx/dy为负数,表示沿x/y轴的反方向移动了-dx/-dy个单位。
*/
const int KN =1000010;
int N,ans;
struct Point
{
int x,y;
Point(){
x=y=0;
}
void read(){
scanf("%d%d",&x,&y);
}
bool operator <(const Point &tmp){
return x<tmp.x;
}
bool operator >(const Point &tmp){
return x>tmp.x;
}
bool operator ==(const Point &tmp){
return (x==tmp.x&&y==tmp.y);
}
Point operator +(const Point &tmp){
Point s;
s.x=x+tmp.x;
s.y=y+tmp.y;
return s;
}
}pos[KN];
Point tar,d;
bool my_cmp(const Point &a,const Point &b)
{
if(a.x==b.x) return a.y<b.y;
else return a.x<b.x;
}
void work()
{
scanf("%d",&N);
pos[0].read();
tar.read();
int i;
for(i=1;i<=N;i++){
d.read();
pos[i]=pos[i-1]+d;
if(pos[i]==tar) break;
}
if(i>N)
{
printf("SingleDogMZX");
return;
}
sort(pos,pos+1+i,my_cmp);
for(int j=0;j<=i;j++)
if(!(pos[j]==pos[j+1]))
ans++;
printf("%d",ans);
}
int main()
{
freopen("loverfinding.in","r",stdin);
freopen("loverfinding.out","w",stdout);
work();
return 0;
}