結果
問題 | No.30 たこやき工場 |
ユーザー |
![]() |
提出日時 | 2022-12-19 22:19:15 |
言語 | C++17(clang) (17.0.6 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,490 bytes |
コンパイル時間 | 1,661 ms |
コンパイル使用メモリ | 146,280 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-18 01:26:10 |
合計ジャッジ時間 | 1,882 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 11 WA * 6 |
ソースコード
#include <iostream>#include <vector>#include <cmath>#include <map>#include <set>#include <iomanip>#include <queue>#include <algorithm>#include <numeric>#include <deque>#include <sstream>using namespace std;//ABC 223 D Restricted Permutaiontemplate<typename T> using pq = priority_queue<T, vector<T>, greater<T>>;vector<long long> topological_sort(vector<vector<pair<long long, long long>>> &E){long long N = E.size(), C;vector<long long> deg(N), res;pq<long long> que;for (int i=0; i<N; i++){for (auto [j, a] : E[i]) deg[j]++;}for (int i=0; i<N; i++){if (deg[i] == 0) que.push(i);}while(!que.empty()){C = que.top();que.pop();res.push_back(C);for (auto [x, a] : E[C]){deg[x]--;if (deg[x] == 0) que.push(x);}}return res;}int main(){long long N, M, A, B, C;cin >> N >> M;vector<vector<pair<long long, long long>>> E(N);vector<long long> top, deg(N), dp(N);for (int i=0; i<M; i++){cin >> A >> C >> B;A--; B--;E[A].push_back({B, C});deg[B]++;}top = topological_sort(E);dp[top[N-1]] = 1;for (int i=N-1; i>=0; i--){for (auto [x, a] : E[top[i]]){dp[top[i]] += a * dp[x];}}for (int i=0; i<N-1; i++){if (deg[i] == 0) cout << dp[i] << endl;else cout << 0 << endl;}return 0;}