Advertisement
ROMaurice

Nivele2

Nov 11th, 2014
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include    <iostream>
  2. #include    <fstream>
  3. #include    <vector>
  4. #include    <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. ifstream fin("nivele2.in");
  9. ofstream fout("nivele2.out");
  10.  
  11. const int LIM = 100005;
  12. int N, MaxLev;
  13. bool beenThere[LIM];
  14.  
  15. vector < int > V[LIM], Level[LIM];
  16.  
  17. void DFS(int node, int level)
  18. {
  19.     beenThere[node] = true;
  20.     Level[level].push_back(node);
  21.     if(level > MaxLev) MaxLev = level;
  22.     for(unsigned int i = 0; i < V[node].size(); i++)
  23.     {
  24.         int Target = V[node][i];
  25.         if(!beenThere[Target])
  26.             DFS(Target, level + 1);
  27.     }
  28. }
  29.  
  30. void Read()
  31. {
  32.     int x, y;
  33.     fin >> N;
  34.     for(int i = 1; i <= N; i++)
  35.     {
  36.         fin >> x >> y;
  37.         V[x].push_back(y);
  38.     }
  39.     DFS(1,1);
  40.     for(int i = 1; i <= MaxLev; i++)
  41.     {
  42.         fout << "nivelul " << i << ": ";
  43.         //sort(Level[i].begin(), Level[i].end());
  44.         for(unsigned int j = 0; j < Level[i].size(); j++)
  45.             fout << Level[i][j] << " ";
  46.         fout << "\n";
  47.     }
  48. }
  49.  
  50. int main()
  51. {
  52.     Read();
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement