hdu 3064

来源:互联网 发布:网络存储器是什么 编辑:程序博客网 时间:2024/05/17 07:23

1:前n项和公式:1+2+3+...+n = n*(n+1)/2
2:前n项平方和公式:1^2+2^2+.........+n^2=n*(n+1)*(2n+1)/6

#include<stdio.h>

#include<math.h>
int main() {
__int64 t,x,y;
__int64 ans,sum;
double a,b;
while(scanf("%I64d",&t)!=EOF) {
scanf("%I64d%I64d",&x,&y);
sum=(x+y)*(y-x+1)/2;
ans=y*(y+1)*(2*y+1)/6-(x-1)*x*(x*2-1)/6;
while(t--) {
scanf("%d%d",&x,&y);
ans=ans-y*(y+1)*(2*y+1)/6+(x-1)*x*(x*2-1)/6;
sum=sum-(x+y)*(y-x+1)/2;
}
a=(sum+sqrt(1.0*sum*sum-4.0*(sum*sum-ans)/2))/2;
b=(sum-sqrt(1.0*sum*sum-4.0*(sum*sum-ans)/2))/2;
 printf("%.0f %.0f\n",b,a);
}
return 0;
}
0 0
原创粉丝点击