結果
| 問題 |
No.155 生放送とBGM
|
| コンテスト | |
| ユーザー |
nxteru
|
| 提出日時 | 2018-07-01 11:23:39 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,089 bytes |
| コンパイル時間 | 666 ms |
| コンパイル使用メモリ | 69,256 KB |
| 実行使用メモリ | 183,612 KB |
| 最終ジャッジ日時 | 2024-07-01 01:08:23 |
| 合計ジャッジ時間 | 3,116 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 6 WA * 9 |
ソースコード
#include <iostream>
#include <algorithm>
using namespace std;
int n,a[55],l,z;
double s[55],dp[55][55][22000],f[60],ans,d[55][22000];
int main(void){
cin>>n>>l;
l*=60;
for(int i=0;i<n;i++){
int x,y;
char c;
cin>>x>>c>>y;
a[i]=x*60+y;
z+=a[i];
}
if(z<=l){
cout<<n<<endl;
return 0;
}
f[0]=1;
for(int i=1;i<=n;i++)f[i]=f[i-1]*double(i);
dp[0][0][0]=1;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
for(int k=0;k<22000;k++){
if(dp[i][j][k]>0){
dp[i+1][j+1][k+a[i]]+=dp[i][j][k];
dp[i+1][j][k]+=dp[i][j][k];
}
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
for(int k=0;k<l;k++){
if(j>0&&k-a[i]>=0)d[j][k]=dp[n][j][k]-d[j-1][k-a[i]];
else d[j][k]=dp[n][j][k];
if(k+a[i]>=l){
ans+=d[j][k]*f[j]*f[n-j-1]*double(j+1);
}
}
}
}
cout<<ans/f[n]<<endl;
}
nxteru