結果
問題 |
No.1112 冥界の音楽
|
ユーザー |
![]() |
提出日時 | 2019-10-12 22:09:40 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 839 bytes |
コンパイル時間 | 1,615 ms |
コンパイル使用メモリ | 172,600 KB |
実行使用メモリ | 27,252 KB |
最終ジャッジ日時 | 2024-12-26 16:32:47 |
合計ジャッジ時間 | 4,723 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 RE * 13 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main() { const long mod = 1000000007; int k, m, n; cin >> k >> m >> n; vector<vector<int>> next(k * k); long dp[n - 1][k][k] = { }; for (int i = 0; i < m; i++) { int p, q, r; cin >> p >> q >> r; p--; q--; r--; next.at(p * k + q).push_back(r); if (p == 0) dp[0][p][q] = 1; } for (int i = 1; i < n - 1; i++) { for (int p = 0; p < k; p++) { for (int q = 0; q < k; q++) { for (auto r : next.at(p * k + q)) { dp[i][q][r] += dp[i - 1][p][q]; dp[i][q][r] %= mod; } } } } long ans = 0; for (int i = 0; i < k; i++) { ans += dp[n - 2][i][0]; ans %= mod; } cout << ans << endl; }