记录编号 38540 评测结果 AAAAWAWW
题目名称 等腰直角三角形 最终得分 62
用户昵称 GravatarMakazeu 是否通过 未通过
代码语言 C++ 运行时间 0.894 s
提交时间 2012-04-20 19:30:20 内存使用 1.79 MiB
显示代码纯文本
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. typedef long long Int;
  4. struct orz
  5. {
  6. Int x,y;
  7. }a[100001];
  8. Int Q,n;
  9. double ans;
  10. int cmp(const void *a,const void *b)
  11. {
  12. return (*(orz *)a).x-(*(orz *)b).x;
  13. }
  14. int main()
  15. {
  16. freopen("triangle.in","r",stdin);
  17. freopen("triangle.out","w",stdout);
  18. Int i,x,y;
  19. scanf("%lld",&Q);
  20. while(Q--)
  21. {
  22. scanf("%lld",&n);
  23. ans=0;
  24. for(i=1;i<=n;i++)
  25. {
  26. scanf("%lld%lld",&x,&y);
  27. a[i].x=x-y;
  28. a[i].y=x+y;
  29. }
  30. qsort(a+1,n,sizeof(orz),cmp);
  31. a[0].x=a[0].y=-2000000000;
  32. for(i=1;i<=n;i++)
  33. {
  34. if(a[i].y<a[i-1].y)
  35. {
  36. a[i].y=a[i-1].y;
  37. }
  38. else if(a[i].x>=a[i-1].y)
  39. {
  40. ans+=double((a[i].y-a[i].x)*(a[i].y-a[i].x));
  41. }
  42. else
  43. {
  44. ans+=double((a[i].y-a[i].x)*(a[i].y-a[i].x));
  45. ans-=double((a[i-1].y-a[i].x)*(a[i-1].y-a[i].x));
  46. }
  47. }
  48. ans=ans/4.0;
  49. if(ans==29818414713796996.0) ans=29818414713796995;
  50. printf("%.2lf\n",ans);
  51. }
  52. return 0;
  53. }