結果
| 問題 |
No.220 世界のなんとか2
|
| ユーザー |
|
| 提出日時 | 2015-05-17 16:01:35 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 1,000 ms |
| コード長 | 517 bytes |
| コンパイル時間 | 1,010 ms |
| コンパイル使用メモリ | 159,744 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-06 05:02:58 |
| 合計ジャッジ時間 | 1,631 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 19 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll dp[25][3][2];
ll solve(int dig, int mod, int used){
if(dig == 0){
return (mod == 0 || used);
}
if(dp[dig][mod][used] != -1){
return dp[dig][mod][used];
}
ll res = 0;
for(int d=0;d<10;d++){
res += solve(dig - 1, (mod + d) % 3, used | (d == 3));
}
return dp[dig][mod][used]=res;
}
int main(){
memset(dp, -1, sizeof(dp));
int P;
cin >> P;
ll res = solve(P, 0, 0) - 1;
cout << res << endl;
return 0;
}