結果
| 問題 |
No.1956 猫の額
|
| ユーザー |
lam6er
|
| 提出日時 | 2025-04-15 21:06:45 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
MLE
|
| 実行時間 | - |
| コード長 | 905 bytes |
| コンパイル時間 | 180 ms |
| コンパイル使用メモリ | 82,052 KB |
| 実行使用メモリ | 298,204 KB |
| 最終ジャッジ日時 | 2025-04-15 21:13:01 |
| 合計ジャッジ時間 | 13,952 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | MLE * 21 |
ソースコード
import sys
from collections import defaultdict
def main():
N, M, C = map(int, sys.stdin.readline().split())
A = list(map(int, sys.stdin.readline().split()))
sum_a = sum(A)
dp = [defaultdict(int) for _ in range(C+1)]
dp[0][0] = 1 # Base case: 0 elements sum to 0
for a in A:
for c in range(C, 0, -1):
prev_c = c - 1
current_dict = dp[c]
prev_dict = dp[prev_c]
temp = defaultdict(int)
for s_prev, cnt in prev_dict.items():
s_new = s_prev + a
temp[s_new] = (temp[s_new] + cnt) % M
for s_new, cnt_new in temp.items():
current_dict[s_new] = (current_dict[s_new] + cnt_new) % M
result = []
for s in range(1, sum_a + 1):
result.append(str(dp[C].get(s, 0) % M))
print(' '.join(result))
if __name__ == '__main__':
main()
lam6er