Codeforces Round #340 (Div. 2)D. Polyline
来源:互联网 发布:三国志曹操传 知乎 编辑:程序博客网 时间:2024/04/29 03:04
There are three points marked on the coordinate plane. The goal is to make a simple polyline, without self-intersections and self-touches, such that it passes through all these points. Also, the polyline must consist of only segments parallel to the coordinate axes. You are to find the minimum number of segments this polyline may consist of.
Each of the three lines of the input contains two integers. The i-th line contains integers xi and yi ( - 109 ≤ xi, yi ≤ 109) — the coordinates of the i-th point. It is guaranteed that all points are distinct.
Print a single number — the minimum possible number of segments of the polyline.
1 -11 11 2
1
-1 -1-1 34 3
2
1 12 33 2
3
The variant of the polyline in the first sample:The variant of the polyline in the second sample:The variant of the polyline in the third sample:
分类讨论即可
/* ***********************************************Author : rycCreated Time : 2016-08-11 ThursdayFile Name : E:\acm\codeforces\340D.cppLanguage : c++Copyright 2016 ryc All Rights Reserved************************************************ */#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<cmath>#include<queue>#include<list>#include<vector>#include<map>#include<stack>using namespace std;typedef long long LL;typedef pair<int,int> pii;const int maxn=10;struct Point{ int x,y;}A[maxn];bool cmp(Point a,Point b){ if(a.x==b.x) return a.y<b.y; return a.x<b.x;}bool cmp1(Point a,Point b){ if(a.y==b.y) return a.x<b.x; return a.y<b.y;}int main(){ for(int i=1;i<=3;++i){ scanf("%d%d",&A[i].x,&A[i].y); } if((A[1].x==A[2].x&&A[2].x==A[3].x)||(A[1].y==A[2].y&&A[1].y==A[3].y)){ printf("%d\n",1); } else if((A[1].x!=A[2].x&&A[1].x!=A[3].x&&A[2].x!=A[3].x)&&(A[1].y!=A[2].y&&A[1].y!=A[3].y&&A[2].y!=A[3].y)){ printf("%d\n",3); } else { sort(A+1,A+4,cmp); if(A[1].x==A[2].x&&(A[3].y>=A[2].y||A[3].y<=A[1].y)){ printf("%d\n",2); } else if(A[2].x==A[3].x&&(A[1].y<=A[2].y||A[1].y>=A[3].y)){ printf("%d\n",2); } else { sort(A+1,A+4,cmp1); if(A[1].y==A[2].y&&(A[3].x>=A[2].x||A[3].x<=A[1].x)){ printf("%d\n",2); } else if(A[2].y==A[3].y&&(A[1].x<=A[2].x||A[1].x>=A[3].x)){ printf("%d\n",2); } else { printf("%d\n",3); } } } return 0;}
- Codeforces Round #340 (Div. 2) D. Polyline
- Codeforces Round #340 (Div. 2)D. Polyline
- Codeforces Round #340 (Div. 2)-D. Polyline
- Codeforces 617D Polyline (Round #340 (Div. 2) D题)
- Codeforces Round #340 (Div. 2) D. Polyline(规律)
- Codeforces Round #340 (Div. 2) 617D Polyline(暴力)
- Codeforces Round #340 (Div. 2) D. Polyline (点之间关系)
- Codeforces Round #340 (Div. 2) D. Polyline 计算几何,折线
- Codeforces Round #340D - Polyline-水
- 【Codeforces Round 340 (Div 2)D】【讨论题】Polyline 三点用最少数量连续不分叉线段连接
- Codeforces Round #320 (Div. 2)C. A Problem about Polyline
- Codeforces Round #320 (Div. 2) C. A Problem about Polyline
- Codeforces Round #320 (Div. 2) C - A Problem about Polyline
- Codeforces Round #320 (Div. 2) C - A Problem about Polyline
- Codeforces Round #320 (Div. 2) C. A Problem about Polyline
- Codeforces Round #320 (Div. 2) [Bayan Thanks-Round] C. A Problem about Polyline 精度控制
- Codeforces Round #320 (Div. 2) [Bayan Thanks-Round] C. A Problem about Polyline
- Codeforces 579 C. A Problem about Polyline(Codeforces Round #320 (Div. 2) )
- 【HDU】-1257-最少拦截系统-(贪心||DP)
- android5.0以上webview无法加载图片问题
- Search a 2D Matrix
- log4j中配置日志文件相对路径方法
- 图论 生成树 POJ 1258 (prim)
- Codeforces Round #340 (Div. 2)D. Polyline
- 你不知道的Android SDK安全测试
- 使用okhttp3做Android图片框架Picasso的下载器和缓存器
- 给enter键添加事件
- ansj源码浅析2
- 电费计算实现程序
- android开发的那点事
- iOS Cocoapods安装步骤
- promise对象的特点