結果
| 問題 |
No.1173 Endangered Species
|
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2020-08-15 14:14:08 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 165 ms / 2,000 ms |
| コード長 | 885 bytes |
| コンパイル時間 | 633 ms |
| コンパイル使用メモリ | 32,384 KB |
| 実行使用メモリ | 8,576 KB |
| 最終ジャッジ日時 | 2024-10-10 17:52:08 |
| 合計ジャッジ時間 | 2,035 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 |
ソースコード
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int i, N, A[100001];
long double p[100001], q[100001];
scanf("%d", &N);
for (i = 1; i <= N; i++) scanf("%Lf", &(p[i]));
for (i = 1; i <= N; i++) scanf("%Lf", &(q[i]));
for (i = 1; i <= N; i++) scanf("%d", &(A[i]));
int flag = 1;
long double x[100001], y[100001], sum, tmp;
for (i = 1; i <= N; i++) x[i] = 0.5;
while (flag == 1) {
flag = 0;
for (i = 1, sum = 0.0; i <= N; i++) sum += p[i] * x[i];
for (i = 1; i <= N; i++) {
tmp = 1.0 - q[i] * (sum - p[i] * x[i]);
y[i] = (tmp - sqrtl(tmp * tmp - 4 * q[i] * (1.0 - q[i]) * p[i])) / (2.0 * q[i] * p[i]);
if (fabsl(y[i] - x[i]) > 1e-10) flag = 1;
}
for (i = 1; i <= N; i++) x[i] = (x[i] + y[i]) / 2.0;
}
long double ans = 0.0;
for (i = 1; i <= N; i++) ans += logl(x[i]) * A[i];
printf("%.7Lf\n", ans);
fflush(stdout);
return 0;
}