题意就是说给你几个点,找到三个点组成三角形面积最大而且其中没有其他点,公式题目也给出,挺水的一道题其实
#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
using namespace std;
double area(int x1,int y1,int x2,int y2,int x3,int y3)
{
return fabs(0.5*((y3-y1)*(x2-x1)-(y2-y1)*(x3-x1)));
}
int main()
{
int t,i,flag,j,k,nx,ny,nz;
double maxx,s;
char ch[20];
int x[20],y[20];
while(scanf("%d",&t)&&t)
{
getchar();
maxx=0;
flag=0;
for(i=0;i<t;i++)
{
scanf("%c%d%d",&ch[i],&x[i],&y[i]);
getchar();
}
for(i=0;i<t-2;i++)
for(j=i+1;j<t-1;j++)
for(k=j+1;k<t;k++)
{
s=area(x[i],y[i],x[j],y[j],x[k],y[k]);
flag=1;
for(int v=0;v<t;v++)
if(v!=i&&v!=j&&v!=k)
{
if(s==area(x[i],y[i],x[j],y[j],x[v],y[v])+area(x[i],y[i],x[v],y[v],x[k],y[k])+area(x[v],y[v],x[j],y[j],x[k],y[k]))
{
flag=0;
break;
}
}
if(flag&&s>maxx)
{
maxx=s;
nx=i;
ny=j;
nz=k;
}
}
printf("%c%c%c\n",ch[nx],ch[ny],ch[nz]);
}
return 0;
}