记录编号 38541 评测结果 AAAAAAAA
题目名称 等腰直角三角形 最终得分 100
用户昵称 Gravatar201101 是否通过 通过
代码语言 C++ 运行时间 0.927 s
提交时间 2012-04-20 19:42:25 内存使用 1.79 MiB
显示代码纯文本
/*
UID:cheepok
PID:triangle
*/

#include<stdio.h>
#include<stdlib.h>

typedef long long Int;

struct orz
{
	Int x,y;
}a[100001];

Int Q,n,ans,tmp;

int cmp(const void *a,const void *b)
{
	return (*(orz *)a).x>(*(orz *)b).x?1:-1;
}

int main()
{
	freopen("triangle.in","r",stdin);
	freopen("triangle.out","w",stdout);
	Int i;
	Int 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+=(a[i].y-a[i].x)*(a[i].y-a[i].x);
			}
			else
			{
				ans+=(a[i].y-a[i].x)*(a[i].y-a[i].x);
				ans-=(a[i-1].y-a[i].x)*(a[i-1].y-a[i].x);
			}
		}
		tmp=(ans%4)*25;
		ans=ans/4;
		printf("%lld.%.2lld\n",ans,tmp);
	}
	return 0;
}