結果
問題 | No.2158 X日後に全完するhibit君 |
ユーザー |
![]() |
提出日時 | 2022-12-09 23:19:05 |
言語 | C (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,185 bytes |
コンパイル時間 | 357 ms |
コンパイル使用メモリ | 30,464 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-14 22:53:43 |
合計ジャッジ時間 | 1,273 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 WA * 2 |
other | AC * 10 WA * 15 |
ソースコード
#include <stdio.h> void func (int pi, int k, int t, int n, double *prob, double tmp_prob) { if (t > 21) { return; } prob[t] += ((double)n)/((double)(pi-k)); if (n > 0) { func(pi, k, t+1, n, prob, tmp_prob*((double)n)/((double)(pi-k))); } if (pi-k-n > 0) { func(pi, k, t+1, n+1, prob, tmp_prob*((double)(pi-k-n))/((double)(pi-k))); } return; } int main () { int n = 0; int k = 0; int p[6] = {}; int s[6] = {}; int t[6] = {}; int res = 0; double e[5000] = {}; double ans = 0.0; int sum = 0; double prob[6][22] = {}; res = scanf("%d", &n); res = scanf("%d", &k); for (int i = 0; i < n; i++) { res = scanf("%d", p+i); res = scanf("%d", s+i); res = scanf("%d", t+i); sum += t[i]; } if (sum > 60) { printf("-1\n"); return 0; } for (int i = 0; i < 6; i++) { func(p[i], k, k+2, 1, prob[i], 1.0); } for (int i = 0; i < (1<<n); i++) { int is_ok = 1; int b = (1<<n)-1; while (b >= 0) { b &= i; if (e[b] > 0.0) { is_ok = 0; } b--; } if (is_ok > 0) { for (int i = 1; i < 22; i++) { } } } }