您的位置:首页 > 其它

HDU 2073 无限的路

2016-01-23 23:12 253 查看
#include <stdio.h>
#include <string.h>
#include <math.h>

int main()
{
int n;
int x1,y1,x2,y2;
int t1,t2;
int x,y;
int i,j,k;

scanf("%d",&n);
while(n--)
{
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);

if(x1 == x2 && y1 == y2)
{
printf("0.000\n");
continue;
}

x = x1+y1;
y = x2+y2;

if(x > y)
{t1=x1;x1=x2;x2=t1;t2=y1;y1=y2;y2=t2;}
else
{
if(x==y)
{
printf("%.3lf\n",abs(x2-x1)*sqrt(2));
continue;
}
}

x = x1+y1;
y = x2+y2;

double sum = 0;

for(i=x;i<y;i++)
sum += (sqrt(i*i+(i+1)*(i+1)) + ((i+1)<y?((i+1)*sqrt(2)):0) );

sum +=y1*sqrt(2) + (y-y2)*sqrt(2);

printf("%.3lf\n",sum);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: