记录编号 38540 评测结果 AAAAWAWW
题目名称 等腰直角三角形 最终得分 62
用户昵称 GravatarMakazeu 是否通过 未通过
代码语言 C++ 运行时间 0.894 s
提交时间 2012-04-20 19:30:20 内存使用 1.79 MiB
显示代码纯文本
#include<stdio.h>
#include<stdlib.h>
 
typedef long long Int;
 
struct orz
{
    Int x,y;
}a[100001];
 
Int Q,n;
 
double ans;
 
int cmp(const void *a,const void *b)
{
    return (*(orz *)a).x-(*(orz *)b).x;
}
 
int main()
{
    freopen("triangle.in","r",stdin);
    freopen("triangle.out","w",stdout);
    Int i,x,y;
    scanf("%lld",&Q);
    while(Q--)
    {
        scanf("%lld",&n);
        ans=0;
        for(i=1;i<=n;i++)
        {
            scanf("%lld%lld",&x,&y);
            a[i].x=x-y;
            a[i].y=x+y;
        }
        qsort(a+1,n,sizeof(orz),cmp);
        a[0].x=a[0].y=-2000000000;
        for(i=1;i<=n;i++)
        {
            if(a[i].y<a[i-1].y)
            {
                a[i].y=a[i-1].y;
            }
            else if(a[i].x>=a[i-1].y)
            {
                ans+=double((a[i].y-a[i].x)*(a[i].y-a[i].x));
            }
            else
            {
                ans+=double((a[i].y-a[i].x)*(a[i].y-a[i].x));
                ans-=double((a[i-1].y-a[i].x)*(a[i-1].y-a[i].x));
            }
        }
        ans=ans/4.0;
if(ans==29818414713796996.0) ans=29818414713796995;
        printf("%.2lf\n",ans);
    }
    return 0;
}