結果
| 問題 | No.456 Millions of Submits! |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-12-07 22:24:16 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.89.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,442 bytes |
| 記録 | |
| コンパイル時間 | 1,682 ms |
| コンパイル使用メモリ | 167,984 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-23 02:43:43 |
| 合計ジャッジ時間 | 11,103 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 11 RE * 1 OLE * 1 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define getchar getchar_unlocked
int in() {
int n, c;
while ((c = getchar()) < '0') if (c == EOF) abort();
n = c - '0';
while ((c = getchar()) >= '0') n = n * 10 + c - '0';
return n;
}
int main() {
int m;
cin >> m;
double maxi = exp(10);
while (m--) {
int a = in(), b = in();
int A = in(), B = in();
double t = A + 1e-4 * B;
double ans = 0;
{
double ok = 1.1;
double ng = 0;
for (int ii = 0; ii < 40; ii++) {
double mid = (ok + ng) / 2;
if (pow(mid, a) * pow(log(mid), b) >= t) {
ok = mid;
} else {
ng = mid;
}
}
if (ok < 1 + 1e-6) {
ans = ok;
}
}
{
double ok = maxi;
double ng = 1;
double logT = log(t);
for (int ii = 0; ii < 50; ii++) {
double mid = (ok + ng) / 2;
double logN = log(mid);
double loglogN = log(logN);
if (a * logN + b * loglogN >= logT) {
ok = mid;
} else {
ng = mid;
}
}
if (ok > 1 + 1e-9) {
ans = ok;
}
}
printf("%.20f\n", ans);
}
}