UVa OJ 10112

1、我特别无语,因为忘记删除freopen,白白WA一次……下次一定要用ifdef!

2、题目中给出了面积的计算公式,点在三角形内当且仅当三个小三角形的面积等于一个大三角形的面积。

3、至此,第五章结束。

#include <stdio.h>

#include <math.h>
double area(double x0,double y0,double x1,double y1,double x2,double y2)
{
    return 0.5*(x0*y1+x2*y0+x1*y2-x2*y1-x0*y2-x1*y0);
}
int main(void)
{
    int n,i,j,k,h,a[20][2],answer[500][3]={0},p,maxi,flag;
    double max,ans[500]={0.0},area1,area2,area3,area4;
    char ch;
    while(scanf("%d",&n)==1)
    {
        if(n==0) break;
        p=0;max=0.0;
        for(i=0;i<n;i++)
        {
           getchar();
           scanf("%c%d%d",&ch,&a[i][0],&a[i][1]);
        }
        for(i=0;i<n-2;i++)
          for(j=i+1;j<n-1;j++)
           for(k=j+1;k<n;k++)
           {
               flag=1;
               for(h=0;h<n;h++)
               {
                   if(h==i||h==j||h==k) continue;
                   area1=fabs(area(a[i][0],a[i][1],a[j][0],a[j][1],a[k][0],a[k][1]));
                   area2=fabs(area(a[h][0],a[h][1],a[j][0],a[j][1],a[k][0],a[k][1]));
                   area3=fabs(area(a[i][0],a[i][1],a[h][0],a[h][1],a[k][0],a[k][1]));
                   area4=fabs(area(a[i][0],a[i][1],a[j][0],a[j][1],a[h][0],a[h][1]));
                   if(fabs(area2+area3+area4-area1)<1e-9) {flag=0;break;}
               }
                if(flag)
                       {
                           answer[p][0]=i;
                           answer[p][1]=j;
                           answer[p][2]=k;
                           ans[p]=area1;
                           p++;
                        }
               }
        for(i=0;i<p;i++)
              if(ans[i]>max)
              {
                  max=ans[i];
                  maxi=i;
              }
        printf("%c%c%c\n",answer[maxi][0]+'A',answer[maxi][1]+'A',answer[maxi][2]+'A');
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值