提出 #4143667


ソースコード 拡げる

#include <bits/stdc++.h>
using namespace std;

int n;
long double dp[3005][3005] = {0.0};
long double p[3005] = {0.0};

long double solve();

int main() {
  cout << fixed << setprecision(10);
  cin >> n;
  for(int i = 0; i < n; ++i) cin >> p[i];
  cout << solve() << endl;
  return 0;
}

long double solve() {
  long double ans = 0;
  dp[0][0] = 1.0 - p[0];
  dp[0][1] = p[0];
  for(int i = 1; i < n; ++i)
    for(int j = 0; j <= n; ++j) {
      dp[i][j] = dp[i - 1][j] * (1.0 - p[i]);
      if(j != 0) dp[i][j] += dp[i - 1][j - 1] * p[i];
    }
  for(int i = n / 2 + 1; i <= n; ++i) ans += dp[n - 1][i];
  return ans;
}

提出情報

提出日時
問題 I - Coins
ユーザ m_tsubasa
言語 C++14 (GCC 5.4.1)
得点 100
コード長 648 Byte
結果 AC
実行時間 77 ms
メモリ 141056 KiB

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 33
セット名 テストケース
All 0_00, 0_01, 0_02, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17, 1_18, 1_19, 1_20, 1_21, 1_22, 1_23, 1_24, 1_25, 1_26, 1_27, 1_28, 1_29
ケース名 結果 実行時間 メモリ
0_00 AC 2 ms 384 KiB
0_01 AC 1 ms 256 KiB
0_02 AC 1 ms 256 KiB
1_00 AC 1 ms 256 KiB
1_01 AC 1 ms 256 KiB
1_02 AC 1 ms 256 KiB
1_03 AC 77 ms 141056 KiB
1_04 AC 75 ms 141056 KiB
1_05 AC 77 ms 141056 KiB
1_06 AC 75 ms 140416 KiB
1_07 AC 75 ms 140672 KiB
1_08 AC 74 ms 139520 KiB
1_09 AC 74 ms 139904 KiB
1_10 AC 74 ms 139520 KiB
1_11 AC 73 ms 139520 KiB
1_12 AC 71 ms 137472 KiB
1_13 AC 75 ms 140800 KiB
1_14 AC 74 ms 139520 KiB
1_15 AC 74 ms 139520 KiB
1_16 AC 74 ms 140160 KiB
1_17 AC 75 ms 140928 KiB
1_18 AC 74 ms 139520 KiB
1_19 AC 74 ms 139520 KiB
1_20 AC 73 ms 139520 KiB
1_21 AC 74 ms 140160 KiB
1_22 AC 74 ms 140160 KiB
1_23 AC 74 ms 140032 KiB
1_24 AC 74 ms 139776 KiB
1_25 AC 74 ms 139648 KiB
1_26 AC 72 ms 137472 KiB
1_27 AC 75 ms 140800 KiB
1_28 AC 73 ms 139520 KiB
1_29 AC 73 ms 139520 KiB