poj 1569
来源:互联网 发布:cv 怎么写 知乎 编辑:程序博客网 时间:2024/05/29 15:04
# include <stdio.h># include <stdlib.h>struct node{ int x,y;}vex[20];int cross(node a,node b,node c){ return (b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y);}int area(node a,node b,node c){ return abs(cross(a,b,c));}int solve(int i,int j,int k,int m){ if(cross(vex[i],vex[j],vex[m])<=0&&cross(vex[j],vex[k],vex[m])<=0&&cross(vex[k],vex[i],vex[m])<=0|| cross(vex[i],vex[j],vex[m])>=0&&cross(vex[j],vex[k],vex[m])>=0&&cross(vex[k],vex[i],vex[m])>=0) return 1; else return 0;}int main (){ int n; while(scanf("%d",&n)!=EOF) { if(n==0) break; char c; for(int i=0;i<n;i++) { c=getchar(); c=getchar(); scanf("%d%d",&vex[i].x,&vex[i].y); } int mark=0,mmax=0,ans,ii,jj,kk; for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) for(int k=j+1;k<n;k++) { mark=0; if(cross(vex[i],vex[j],vex[k])==0) continue; for(int m=0;m<n;m++) { if(m==i||m==j||m==k) continue; if(solve(i,j,k,m)) {mark=1;break;} } //printf("mark===%d\n",mark); if(mark==1) continue; ans=area(vex[i],vex[j],vex[k]); //printf("ans=====%d\n",ans); if(ans>mmax) { mmax=ans; ii=i;jj=j;kk=k; } } printf("%c%c%c\n",ii+'A',jj+'A',kk+'A'); } return 0;}注意判断点在三角形内部的判断
0 0
- poj 1569
- poj 1569 Myacm Triangles
- POJ 1569 Myacm Triangles
- POJ
- poj
- POJ
- POJ
- poj
- poj
- POJ
- POJ
- poj
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- java编程实现列表框元素动态变化
- poj 2021 优先队列bfs
- JAVA基础(1)
- 进行科学锻炼的方法
- 错误解析->“cvQueryHistValue_1D”: 找不到标识符
- poj 1569
- kerveros认证过程
- 新的征程-----致幡然醒悟的自己
- 5月17日安卓开发环境的安装和打电话的安卓应用
- STM32推挽输出、开漏输出
- winform清空DataGridView中的数据
- HDU3507_Print Article
- Cocos2d-x中父节点scale对子节点的影响
- ExecutorService产生的Thread命名