結果
問題 |
No.220 世界のなんとか2
|
ユーザー |
|
提出日時 | 2020-09-04 17:06:24 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 1,000 ms |
コード長 | 991 bytes |
コンパイル時間 | 819 ms |
コンパイル使用メモリ | 75,276 KB |
最終ジャッジ日時 | 2025-01-14 04:33:28 |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
ソースコード
#include <iostream> #include <vector> template <class T> std::vector<T> vec(int len, T elem) { return std::vector<T>(len, elem); } using lint = unsigned long long; void solve() { int n; std::cin >> n; // 3 has appeared, modulo 3 auto dp = vec(2, vec(3, 0LL)); dp[0][0] = 1; while (n--) { auto ndp = vec(2, vec(3, 0LL)); for (int f = 0; f < 2; ++f) { for (int r = 0; r < 3; ++r) { for (int d = 0; d <= 9; ++d) { int nf = f || (d == 3); int nr = (r + d) % 3; ndp[nf][nr] += dp[f][r]; } } } std::swap(dp, ndp); } lint ans = 0; for (int f = 0; f < 2; ++f) ans += dp[f][0]; for (int r = 0; r < 3; ++r) ans += dp[1][r]; ans -= dp[1][0]; --ans; // 0 std::cout << ans << "\n"; } int main() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); solve(); return 0; }