Cod sursa(job #3243178)

Utilizator Fan_ClubAnime Enjoyer Fan_Club Data 16 septembrie 2024 11:58:10
Problema Componente tare conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 2.45 kb
#pragma GCC optimize("O3,unroll-loops")
#include <bits/stdc++.h>

using namespace std;
const int MAX_CREW_MEMBERS = 1e5;
vector<int>star_rail_paths[MAX_CREW_MEMBERS+5];
vector<int>Stellaron_Affected[MAX_CREW_MEMBERS+5];
int crew_members,places_in_train;
vector<int> aeon_of_order;
bool planets_trailblazed[MAX_CREW_MEMBERS+5];
void Function_of_Destruction(int Welt){
    planets_trailblazed[Welt]=1;
    for(int Pom_Pom = 0; Pom_Pom < star_rail_paths[Welt].size(); Pom_Pom++){
        if(planets_trailblazed[star_rail_paths[Welt][Pom_Pom]]==0){
            Function_of_Destruction(star_rail_paths[Welt][Pom_Pom]);
        }
    }
    aeon_of_order.push_back(Welt);
}
vector<int> Travel_Log;
void Fate_Atlas (int Himeko){
    planets_trailblazed[Himeko]=1;
    for(int Pom_Pom = 0; Pom_Pom < Stellaron_Affected[Himeko].size(); Pom_Pom++){
        if(planets_trailblazed[Stellaron_Affected[Himeko][Pom_Pom]]==0){
            Fate_Atlas(Stellaron_Affected[Himeko][Pom_Pom]);
        }
    }
    Travel_Log.push_back(Himeko);
}
vector< vector<int> > Archive;
int main()
{
    ifstream Standard_Banner("ctc.in");
    ofstream Premium_Banner("ctc.out");
    Standard_Banner>>crew_members>>places_in_train;int Dan_Hang,March_7th;
    for(int Pom_Pom = 1;Pom_Pom <= places_in_train; Pom_Pom++){
        Standard_Banner>>Dan_Hang>>March_7th;
        star_rail_paths[Dan_Hang].push_back(March_7th);
        Stellaron_Affected[March_7th].push_back(Dan_Hang);
    }
    for(int Pom_Pom = 1; Pom_Pom <= crew_members ; Pom_Pom ++ ){
        if(planets_trailblazed[Pom_Pom]==0){
            Function_of_Destruction(Pom_Pom);
        }
    }
    for(int Pom_Pom = 1;Pom_Pom <= crew_members ; Pom_Pom ++ ){
        planets_trailblazed[Pom_Pom]=0;
    }
    reverse(aeon_of_order.begin(),aeon_of_order.end());
    for(int Pom_Pom = 0 ; Pom_Pom < aeon_of_order.size() ; Pom_Pom++){
        if(planets_trailblazed[aeon_of_order[Pom_Pom]]==0){
            Fate_Atlas(aeon_of_order[Pom_Pom]);
            sort(Travel_Log.begin(),Travel_Log.end());
            Archive.push_back(Travel_Log);
            Travel_Log.clear();
        }
    }
    Premium_Banner<<Archive.size()<<'\n';
    for(int Pom_Pom = 0; Pom_Pom < Archive.size(); Pom_Pom ++){
        for(int Stellar_Jade = 0; Stellar_Jade < Archive[Pom_Pom].size();Stellar_Jade++){
            Premium_Banner << Archive[Pom_Pom][Stellar_Jade]<<" ";
        }
        Premium_Banner << '\n';
    }
    return 0;
}