Submission #98225

#TimeUsernameProblemLanguageResultExecution timeMemory
98225dalgerokAlkemija (COCI18_alkemija)C++17
80 / 80
93 ms11344 KiB
#include<bits/stdc++.h> using namespace std; const int N = 1e5 + 5; int n, m, k, x, cnt[N]; bool used[N]; vector < int > q[N], s[N]; int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n >> m; for(int i = 1; i <= m; i++){ cin >> x; used[x] = true; } cin >> k; queue < int > qq; for(int i = 1; i <= k; i++){ int l, r; cin >> l >> r; for(int j = 1; j <= l; j++){ cin >> x; q[x].push_back(i); if(!used[x]){ cnt[i] += 1; } } for(int j = 1; j <= r; j++){ cin >> x; s[i].push_back(x); } if(cnt[i] == 0){ qq.push(i); } } while(!qq.empty()){ int v = qq.front(); qq.pop(); for(int to : s[v]){ if(!used[to]){ used[to] = true; for(auto it : q[to]){ if(--cnt[it] == 0){ qq.push(it); } } } } } vector < int > ans; for(int i = 1; i <= n; i++){ if(used[i]){ ans.push_back(i); } } cout << (int)ans.size() << "\n"; for(auto it : ans){ cout << it << " "; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...