Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- ifstream fin("nivele2.in");
- ofstream fout("nivele2.out");
- const int LIM = 100005;
- int N, MaxLev;
- bool beenThere[LIM];
- vector < int > V[LIM], Level[LIM];
- void DFS(int node, int level)
- {
- beenThere[node] = true;
- Level[level].push_back(node);
- if(level > MaxLev) MaxLev = level;
- for(unsigned int i = 0; i < V[node].size(); i++)
- {
- int Target = V[node][i];
- if(!beenThere[Target])
- DFS(Target, level + 1);
- }
- }
- void Read()
- {
- int x, y;
- fin >> N;
- for(int i = 1; i <= N; i++)
- {
- fin >> x >> y;
- V[x].push_back(y);
- }
- DFS(1,1);
- for(int i = 1; i <= MaxLev; i++)
- {
- fout << "nivelul " << i << ": ";
- //sort(Level[i].begin(), Level[i].end());
- for(unsigned int j = 0; j < Level[i].size(); j++)
- fout << Level[i][j] << " ";
- fout << "\n";
- }
- }
- int main()
- {
- Read();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement