Submission #1223408

#TimeUsernameProblemLanguageResultExecution timeMemory
1223408AmaarsaaAlkemija (COCI18_alkemija)C++20
80 / 80
60 ms13504 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; const ll MAX_N = 1e5 + 2; vector < ll > bagtsan[MAX_N]; ll uldegdel[MAX_N]; ll found[MAX_N]; int main() { //ios::sync_with_stdio(0); //cin.tie(0); //cout.tie(0); ll n, m, r, N, ind, k, x, y, z,i, j, t; cin >> N >> n; ll a[n + 2]; for (i = 1; i <= n; i ++) { cin >> a[i]; found[a[i]] = 1; } cin >> m; ll L[m + 2], R[m + 2]; vector < ll > Le[m + 2], Ri[m + 2]; for (i = 1; i <=m; i ++) { cin >> L[i] >> R[i]; uldegdel[i] = L[i]; for (j = 1; j <= L[i]; j ++) { cin >> x; if ( found[x] == 1) uldegdel[i] --; bagtsan[x].push_back(i); Le[i].push_back(x); } for (j = 1; j <= R[i]; j ++) { cin >> x; Ri[i].push_back(x); } } queue < ll > q; for (i = 1; i <= m; i ++) { if ( uldegdel[i] == 0) q.push(i); } while (!q.empty()){ ind = q.front(); q.pop(); for ( ll X : Ri[ind]) { if ( found[X] == 1) { continue; } found[X] = 1; for ( ll Y : bagtsan[X]) { uldegdel[Y] --; if ( uldegdel[Y] == 0) q.push(Y); } } } vector < ll > ans; for (i = 1; i <= N; i ++) { if ( found[i] == 1) { ans.push_back(i); } } cout << ans.size() << endl; for ( ll X : ans) { cout << X << " "; } }
#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...