結果
| 問題 | No.456 Millions of Submits! |
| コンテスト | |
| ユーザー |
bal4u
|
| 提出日時 | 2019-07-29 09:39:40 |
| 言語 | C(gnu17) (gcc 15.2.0) |
| 結果 |
AC
|
| 実行時間 | 576 ms / 4,500 ms |
| コード長 | 1,124 bytes |
| 記録 | |
| コンパイル時間 | 371 ms |
| コンパイル使用メモリ | 42,848 KB |
| 最終ジャッジ日時 | 2026-02-22 04:03:03 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 13 |
ソースコード
// yukicoder: No.456 Millions of Submits!
// 2019.7.29 bal4u
#include <stdio.h>
#include <math.h>
#if 1
#define gc() getchar_unlocked()
#else
#define gc() getchar()
#endif
int in() { // 非負整数の入力
int n = 0, c = gc();
do n = 10 * n + (c & 0xf); while ((c = gc()) >= '0');
return n;
}
double getdbl() { // 正実数の入力
double x, y;
int n = 0, c = gc();
do n = 10*n + (c & 0xf), c = gc(); while (c >= '0');
if (c == '.') {
x = 0, y = 1, c = gc();
do y *= 0.1, x += y * (c & 0xf), c = gc(); while (c >= '0');
x += n;
} else x = n;
return x;
}
#define EPS 1e-10
int a, b; double t;
double logt, logn;
double f(double n) { logn = log(n); return a*logn + b*log(logn) - logt; }
double d(double n) { return (a + b/logn)/n; }
int main()
{
int m; double ans, n, fn;
m = in(); while (m--) {
a = in(), b = in(), t = getdbl();
if (a == 0) ans = exp(pow(t, 1.0/b));
else if (b == 0) ans = pow(t, 1.0/a);
else {
logt = log(t), n = 3.0;
while (fabs(fn = f(n)) > EPS) {
n -= fn/d(n);
while (n <= 1.0) n += 0.2;
}
ans = n;
}
printf("%.10lf\n", ans);
}
return 0;
}
bal4u