結果
問題 |
No.1956 猫の額
|
ユーザー |
|
提出日時 | 2022-04-21 16:41:49 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
MLE
|
実行時間 | - |
コード長 | 735 bytes |
コンパイル時間 | 650 ms |
コンパイル使用メモリ | 76,700 KB |
最終ジャッジ日時 | 2025-01-28 19:23:52 |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 5 MLE * 16 |
ソースコード
#include <algorithm> #include <cassert> #include <limits> #include <queue> #include <vector> #include <iostream> using namespace std; const int NMAX = 100; const int AMAX = 100000; int a[NMAX]; int dp[NMAX + 1][AMAX + 1]; int N, M, C; int main() { cin >> N >> M >> C; for (int i = 0; i < N; ++i) cin >> a[i]; for (int i = 0; i < N; ++i) for (int j = 0; j <= AMAX; ++j) dp[i][j] = 0; dp[0][0] = 1; for (int i = 0; i < N; ++i) { for (int j = N - 1; j >= 0; --j) { for (int k = AMAX - a[i]; k >= 0; --k) { dp[j + 1][k + a[i]] += dp[j][k]; dp[j + 1][k + a[i]] %= M; } } } int max = 0; for (int i : a) max += i; long long ans = 0; for (int s = 1; s <= max; ++s) cout << dp[C][s] << (s == max ? "\n" : " "); }