您的位置:首页 > 其它

Vijos 1433题:火炬手之梦

2017-04-28 07:44 176 查看

描述

十八居士做的第4个梦是成为了一名火炬手。恰巧奥组委还有最后一个火炬手的名额,于是各路高手群雄逐鹿争夺这个名额,clever的十八居士过五关斩六将,与另一高手会师决赛。裁判把他们带到一个神秘密码门前,只要谁先打开这个门,门里的祥云火炬就属于谁。只见密码门上写着一个提示:“密码:f(x)=sqrt((x+a)^2+b)+sqrt((x+c)^2+d)的最小值。”两人面面相觑,怎么做啊这?于是十八居士找到了会编程的你,请你帮他解决问题。

输入:a,b,c,d四个常数(b,d为完全平方数,0

样例1

样例输入1

1 1 3 4

注:即f(x)=sqrt((x+1)^2+1)+sqrt((x+3)^2+4)

样例输出1

3.606

注:但x=-5/3时,f(x)=sqrt(13)

#include<iostream>
#include<cstdio>
#include<cmath>

using namespace std;

int main()
{
double a, b, c, d, ans;
cin >> a >> b >> c >> d;
double a2 = -a, b2 = sqrt(b), c2 = -c, d2 = -sqrt(d);
ans = sqrt((a2 - c2)*(a2 - c2) + (b2 - d2)*(b2 - d2));
printf("%.3f", ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vijos 算法