結果
問題 | No.412 花火大会 |
ユーザー |
|
提出日時 | 2016-08-12 22:42:20 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 7 ms / 2,000 ms |
コード長 | 808 bytes |
コンパイル時間 | 1,586 ms |
コンパイル使用メモリ | 162,816 KB |
実行使用メモリ | 11,776 KB |
最終ジャッジ日時 | 2024-11-07 16:34:48 |
合計ジャッジ時間 | 2,265 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 18 |
ソースコード
#include <bits/stdc++.h>using namespace std;int main() {int c[3];for (int i = 0; i < 3; i++) cin >> c[i];sort(c, c + 3);int n;cin >> n;vector<long long> a(n);for (int i = 0; i < n; i++) cin >> a[i];static long long dp[33][33][33][33];dp[0][0][0][0] = 1;for (int i = 0; i < n; i++) {for (int j = 0; j <= 30; j++) {for (int k = 0; k <= 30; k++) {for (int l = 0; l <= 30; l++) {int nj = j + (a[i] >= c[0]);int nk = k + (a[i] >= c[1]);int nl = l + (a[i] >= c[2]);dp[i + 1][j][k][l] += dp[i][j][k][l];dp[i + 1][nj][nk][nl] += dp[i][j][k][l];}}}}long long ans = 0;for (int j = 3; j <= 30; j++) {for (int k = 2; k <= 30; k++) {for (int l = 1; l <= 30; l++) {ans += dp[n][j][k][l];}}}cout << ans << endl;}