记录编号 |
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;
- }