Submission #453130

#TimeUsernameProblemLanguageResultExecution timeMemory
453130jurgisFire drill (LMIO18_sauga)C++14
44.85 / 100
225 ms7456 KiB
#include <iostream> #include <bits/stdc++.h> using namespace std; typedef pair<int, int> pii; int n, t, s; int laipsniai[1001]; vector<int> adj[1001]; vector<int> result; int isnaudotapak = 0; const int inf = 1e8; void toposort(){ priority_queue<pair<int, int> > q; for(int i = 1; i <= n; i++){ q.push({-laipsniai[i], i}); } while(!q.empty()){ int v = q.top().second; int laip = -q.top().first; q.pop(); if(laipsniai[v] > 1000 ||laip != laipsniai[v]) continue; laipsniai[v] = inf; result.push_back(v); for(auto x : adj[v]){ laipsniai[x]--; q.push({-laipsniai[x], x}); } } } int main() { cin>>t>>n>>s; for(int i=0; i<n; i++){ int num; cin>>num; laipsniai[i+1] = num; for(int a=0; a<num; a++){ int u; cin>>u; adj[u].push_back(i+1); } } toposort(); for(auto i: result){ cout<<i<<"\n"; } } /* test case 0 4 1 2 2 3 0 1 4 1 1*/
#Verdict Execution timeMemoryGrader output
Fetching results...