結果
問題 | No.679 不思議マーケット |
ユーザー |
![]() |
提出日時 | 2018-04-27 22:47:11 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 5 ms / 2,000 ms |
コード長 | 771 bytes |
コンパイル時間 | 744 ms |
コンパイル使用メモリ | 69,484 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-27 22:05:14 |
合計ジャッジ時間 | 1,435 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 18 |
ソースコード
#include <iostream> #include <algorithm> #include <vector> #include <string> #include <cmath> using namespace std; typedef long long ll; int main() { int n, m; cin >> n >> m; vector<vector<int>>E(n); 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--; E[g].push_back(h); } } vector<char>used(n); bool flag = true; while (flag) { flag = false; for (int i = 0; i < n; i++) { if (used[i])continue; bool sold = true; for (int j = 0; sold && j < E[i].size(); j++) { if (!used[E[i][j]])sold = false; } if (sold) { flag = true; used[i] = true; } } } int ans = 0; for (int i = 0; i < n; i++)if (used[i])ans++; cout << ans << endl; return 0; }