Myacm Triangles hoj,poj,uva 计算几何
[cpp]/*暴力枚举。
判断点是否在三角形内,用叉积求面积。
*/
#include <stdio.h>
#include <cmath>
#define eps 1e-8
struct point
{
double x,y;
char op;
} p[16];
double xmul(point a,point b,point c)
{
return fabs((b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x));
}
bool is_in(point o,point a,point b,point c)
{
double sum=xmul(o,a,b)+xmul(o,b,c)+xmul(o,c,a);
if(sum==xmul(a,b,c)) return true;
return false;
}
int main()
{
int n,a,b,c;
while(scanf("%d",&n)==1&& n)
{
double ans=0;
for(int i=1; i<=n; i++)
scanf(" %c %lf %lf",&p[i].op,&p[i].x,&p[i].y);
for(int k=3; k<=n; k++)
for(int i=2; i<k; i++)
for(int j=1; j<i; j++)
{
bool ret=false;
for(int q=1; q<=n; q++)
{
if(q==i||q==j||q==k) continue;
if(is_in(p[q],p[i],p[j],p[k]))
{
ret=true;
break;
}
}
if(!ret)
{
if(xmul(p[i],p[j],p[k])>ans) ans=xmul(p[i],p[j],p[k]),a=j,b=i,c=k;
}
}
printf("%c%c%c\n",p[a].op,p[b].op,p[c].op);
}
return 0;
}
补充:软件开发 , C++ ,