結果

問題 No.1173 Endangered Species
ユーザー 👑 ygussanyygussany
提出日時 2020-08-15 14:14:08
言語 C
(gcc 12.3.0)
結果
AC  
実行時間 167 ms / 2,000 ms
コード長 885 bytes
コンパイル時間 1,485 ms
コンパイル使用メモリ 33,536 KB
実行使用メモリ 8,576 KB
最終ジャッジ日時 2024-04-19 01:09:07
合計ジャッジ時間 2,250 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
5,248 KB
testcase_01 AC 1 ms
5,376 KB
testcase_02 AC 1 ms
5,376 KB
testcase_03 AC 1 ms
5,376 KB
testcase_04 AC 1 ms
5,376 KB
testcase_05 AC 1 ms
5,376 KB
testcase_06 AC 1 ms
5,376 KB
testcase_07 AC 1 ms
5,376 KB
testcase_08 AC 1 ms
5,376 KB
testcase_09 AC 1 ms
5,376 KB
testcase_10 AC 1 ms
5,376 KB
testcase_11 AC 1 ms
5,376 KB
testcase_12 AC 2 ms
5,376 KB
testcase_13 AC 2 ms
5,376 KB
testcase_14 AC 14 ms
5,376 KB
testcase_15 AC 9 ms
5,376 KB
testcase_16 AC 89 ms
5,504 KB
testcase_17 AC 137 ms
7,552 KB
testcase_18 AC 167 ms
8,576 KB
testcase_19 AC 166 ms
8,576 KB
testcase_20 AC 139 ms
8,448 KB
testcase_21 AC 137 ms
8,576 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#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;
}
0