結果
問題 | No.220 世界のなんとか2 |
ユーザー |
![]() |
提出日時 | 2017-04-04 18:22:23 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 872 bytes |
コンパイル時間 | 1,259 ms |
コンパイル使用メモリ | 160,652 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-08 08:36:56 |
合計ジャッジ時間 | 1,820 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
ソースコード
#include "bits/stdc++.h"using namespace std;typedef long long ll;#define FOR(i,a,b) for(int i=(a);i<(int)(b);++i)#define rep(i,n) FOR(i,0,n)#define ALL(x) (x).begin(),(x).end()#define mset(a,x) memset(a,x,sizeof(a))ll dp[24][2][2][3];vector<int> dd;ll calc() {int N = dd.size();mset(dp, 0);dp[0][0][0][0] = 1;rep(i, N) rep(j, 2) {int lim = 9;if(j == 0) lim = dd[i];rep(k, 2) rep(l, 3) {rep(d, lim + 1) {dp[i + 1][j || d < lim][k || d == 3][(l + d) % 3] += dp[i][j][k][l];}}}ll ret = 0;rep(j, 2) rep(k, 2) rep(l, 3) {if(k || l == 0) ret += dp[N][j][k][l];}return ret - 1; // except 0}int main() {int p;cin >> p;dd.push_back(1);rep(i, p) dd.push_back(0);cout << calc() << endl;return 0;}