結果
問題 |
No.679 不思議マーケット
|
ユーザー |
![]() |
提出日時 | 2018-09-06 13:04:06 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,105 bytes |
コンパイル時間 | 1,829 ms |
コンパイル使用メモリ | 172,168 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-21 18:54:11 |
合計ジャッジ時間 | 2,237 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 18 |
ソースコード
#include <bits/stdc++.h> using namespace std; using int64 = long long; using uint64 = unsigned long long; const int MAX_N = 500; vector<int> G[MAX_N]; int n, m, indeg[MAX_N]; int solve() { int res = 0; queue<int> Q; for (int i = 0; i < n; i++) { if (indeg[i] == 0) { Q.push(i); res++; } } while (!Q.empty()) { int u = Q.front(); Q.pop(); for (int to : G[u]) { if (indeg[to] > 0) { indeg[to]--; if (indeg[to] == 0) { Q.push(to); res++; } } } } return res; } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); cin >> n >> m; for (int i = 0; i < m; i++) { int g, r; cin >> g >> r; g--; for (int j = 0; j < r; j++) { int h; cin >> h; h--; G[h].push_back(g); indeg[g]++; } } cout << solve() << endl; return 0; }