結果
| 問題 |
No.306 さいたま2008
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-11-28 02:45:09 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 955 bytes |
| コンパイル時間 | 485 ms |
| コンパイル使用メモリ | 60,752 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-14 01:57:08 |
| 合計ジャッジ時間 | 3,489 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge6 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 20 WA * 3 |
ソースコード
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
double min(double a, double b)
{
if (a > b) return b;
else return a;
}
double max(double a, double b)
{
if (a < b) return b;
else return a;
}
int main()
{
double ax, ay, bx, by;
cin >> ax >> ay;
cin >> bx >> by;
if (ay == by) {
cout << ay << endl;
return 0;
}
else if (ax == bx) {
cout << (ay + by) / 2 << endl;
return 0;
}
else {
double tmp = 1000000.0;
double p = min(ay, by);
for (double d = min(ay,by); d <= max(ay,by); d = d + 0.00001) {
double dis = sqrt(ax*ax + (ay - d)*(ay - d)) + sqrt(bx*bx + (by - d)*(by - d));
if (dis < tmp) {
p = d;
tmp = dis;
}
}
tmp = 1000000.0;
for (double d = p - 0.00001; d <= p + 0.00001; d = d + 0.000005) {
double dis = sqrt(ax*ax + (ay - d)*(ay - d)) + sqrt(bx*bx + (by - d)*(by - d));
if (dis < tmp) {
p = d;
tmp = dis;
}
}
cout << p << endl;
}
return 0;
}