結果
| 問題 | No.155 生放送とBGM |
| コンテスト | |
| ユーザー |
sugim48
|
| 提出日時 | 2015-02-18 01:27:43 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,597 bytes |
| コンパイル時間 | 814 ms |
| コンパイル使用メモリ | 91,376 KB |
| 実行使用メモリ | 20,920 KB |
| 最終ジャッジ日時 | 2024-06-23 20:57:48 |
| 合計ジャッジ時間 | 7,288 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 13 WA * 2 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:42:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
42 | scanf("%d:%d", &MM, &SS);
| ~~~~~^~~~~~~~~~~~~~~~~~~
ソースコード
#define _USE_MATH_DEFINES
#include <algorithm>
#include <cstdio>
#include <functional>
#include <iostream>
#include <cfloat>
#include <climits>
#include <cstring>
#include <cmath>
#include <map>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <time.h>
#include <vector>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> i_i;
typedef pair<ll, int> ll_i;
typedef pair<double, int> d_i;
typedef pair<ll, ll> ll_ll;
typedef pair<double, double> d_d;
struct edge { int v, w; };
ll MOD = 1000000007;
ll _MOD = 1000000009;
double EPS = 1e-10;
int INF = INT_MAX / 4;
int main() {
int N, L;
cin >> N >> L;
L *= 60;
int l = L + 3600;
vector<int> a(N);
for (int i = 0; i < N; i++) {
int MM, SS;
scanf("%d:%d", &MM, &SS);
a[i] = MM * 60 + SS;
}
vector<vector<double> > dp(N + 1, vector<double>(l));
dp[0][0] = 1;
for (int i = 0; i < N; i++) {
vector<vector<double> > _dp(N + 1, vector<double>(l));
for (int j = 0; j <= i; j++)
for (int k = 0; k < l; k++) {
_dp[j][k] += dp[j][k] * (i - j + 1) / (i + 2);
if (k + a[i] < l)
_dp[j + 1][k + a[i]] += dp[j][k] * (j + 1) / (i + 2);
}
dp = _dp;
}
double sum = 0;
for (int i = 0; i < N; i++) {
vector<vector<double> > x(N + 1, vector<double>(l));
for (int j = 0; j <= N - 1; j++)
for (int k = 0; k < L; k++) {
if (j == 0 || k < a[i]) x[j][k] = dp[j][k] / (N - j) * (N + 1);
else x[j][k] = (dp[j][k] - x[j - 1][k - a[i]] * j / (N + 1)) / (N - j) * (N + 1);
sum += x[j][k];
}
}
printf("%.10f\n", sum);
}
sugim48