結果
問題 | No.220 世界のなんとか2 |
ユーザー | shobonvip |
提出日時 | 2022-07-29 20:56:27 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 42 ms / 1,000 ms |
コード長 | 668 bytes |
コンパイル時間 | 198 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 52,608 KB |
最終ジャッジ日時 | 2024-07-19 11:49:39 |
合計ジャッジ時間 | 2,053 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
ソースコード
# 桁DP # dp[i][j] : iの倍数であり, jを含む p = int(input()) unhav = [0] * 3 hav = [0] * 3 nowstate = 0 for num in range(p+1): nunhav = [0] * 3 nhav = [0] * 3 #継続 for i in range(0, 10): for j in range(3): if i == 3: nhav[(i+j)%3] += unhav[j] + hav[j] else: nunhav[(i+j)%3] += unhav[j] nhav[(i+j)%3] += hav[j] #新規 if num > 0: for i in range(1, 10): if i == 3: nhav[i%3] += 1 else: nunhav[i%3] += 1 for i in range(3): hav[i] = nhav[i] unhav[i] = nunhav[i] nowstate = nowstate * 10 if num == 0: nowstate += 1 nowstate %= 3 unhav[nowstate] += 1 print(unhav[0] + hav[0] + hav[1] + hav[2])