Pagini recente » Cod sursa (job #2522170) | Cod sursa (job #794531) | Cod sursa (job #1912656) | Cod sursa (job #2789675) | Cod sursa (job #3243178)
#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;
}