結果
問題 | No.1042 愚直大学 |
ユーザー | polyester |
提出日時 | 2020-05-01 22:58:05 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 763 bytes |
コンパイル時間 | 627 ms |
コンパイル使用メモリ | 83,744 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-25 14:01:30 |
合計ジャッジ時間 | 1,384 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 23 |
ソースコード
#include<iostream> #include<algorithm> #include<vector> #include<functional> #include<string> #include<cmath> #include<map> #include<set> #include<queue> #include<stack> #include<cstdio> #include<numeric> using namespace std; using ll = long long; using ld = long double; ld p, q; ld f(ld x) { return pow(x, 2) - q * x * log2l(x) - p; } ld g(ld x) { return 2 * x - q * (log2l(x) - logl(2)); } int main(){ cin >> p >> q; const double eps = 1e-08; const int limit = 5000000; ld x, dx; ld a, b, c; a = 1; b = 1001001001001001001.0; while(fabs(a - b) > eps){ c = (a + b) / 2; if(f(c) == 0){ break; } if(f(a) * f(c) < 0){ b = c; } if(f(a) * f(c) > 0){ a = c; } } printf("%.10Lf\n", c); return 0; }