770C - Online Courses In BSU - CodeForces Solution


*special problem dfs and similar graphs implementation *1500

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

#define endl '\n'
const ll mx = 1e5;
const int MOD = 1000000007;
const double eps = 1e-6;
bool loop = false;
int visited[mx+1];
vector<int> ans;

void dfs(vector<vector<int>> &adj,int node){
    if(visited[node]==0){
        visited[node]=1;
        for(auto child:adj[node])dfs(adj,child);
        visited[node]=2;
        ans.push_back(node);
    }else if(visited[node]==1){
        loop = true;
        return;
    }
}

int main()
{
    ios_base::sync_with_stdio(false); cin.tie(nullptr);

    //freopen ("input.txt","r",stdin);
    //freopen ("output.txt","w",stdout);

    int n,k;cin>>n>>k;
    vector<int> mainCourses(k);
    for(auto &course:mainCourses)cin>>course;
    vector<vector<int>> adj(n+1);
    for(int i=1;i<=n;i++){
        int num;cin>>num;
        while(num--){
            int temp;cin>>temp;
            adj[i].push_back(temp);
        }
    }

    for(auto course:mainCourses){
        dfs(adj,course);
    }
    if(loop){
        cout<<-1<<endl;
        return 0;
    }
    cout<<ans.size()<<endl;
    for(auto course:ans)cout<<course<<" ";
    cout<<endl;

    return 0;
}
	 	  	  		 	   	 	 	 		  	 	 		


Comments

Submit
0 Comments
More Questions

1614B - Divan and a New Project
791A - Bear and Big Brother
1452A - Robot Program
344A - Magnets
96A - Football
702B - Powers of Two
1036A - Function Height
443A - Anton and Letters
1478B - Nezzar and Lucky Number
228A - Is your horseshoe on the other hoof
122A - Lucky Division
1611C - Polycarp Recovers the Permutation
432A - Choosing Teams
758A - Holiday Of Equality
1650C - Weight of the System of Nested Segments
1097A - Gennady and a Card Game
248A - Cupboards
1641A - Great Sequence
1537A - Arithmetic Array
1370A - Maximum GCD
149A - Business trip
34A - Reconnaissance 2
59A - Word
462B - Appleman and Card Game
1560C - Infinity Table
1605C - Dominant Character
1399A - Remove Smallest
208A - Dubstep
1581A - CQXYM Count Permutations
337A - Puzzles