Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. //obrazy i pokoje
  2. #include <iostream>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     int n, l;
  9.     cin >> n;
  10.     for(int t = 0; t < n; t++)
  11.     {
  12.         cin >> l;
  13.         int obrazy[l], sigm[l];
  14.         vector <int> stack;
  15.         int wartosc;
  16.        
  17.         for(int i = 0; i < l; i++){sigm[i] = 0;}
  18.        
  19.         for(int i = 0; i < l; i++){
  20.             cin >> wartosc;
  21.             obrazy[i] = wartosc;
  22.             sigm[wartosc-1] += 1;
  23.         }
  24.         for(int i = 0; i < l; i++){
  25.             if(sigm[i] == 0)
  26.                 stack.push_back(i);
  27.         }
  28.         int i, k;
  29.  
  30.         while(!stack.empty()){
  31.             i = stack.back();
  32.             stack.pop_back();
  33.             k = obrazy[i] - 1;
  34.             sigm[k] -= 1;
  35.             if(sigm[k] == 0)
  36.                 stack.push_back(k);
  37.         }
  38.         int suma = 0;
  39.         for(int i = 0; i < l; i++){
  40.             if(sigm[i] > 0)
  41.                 suma = suma + 1;
  42.         }
  43.         cout << suma << endl;
  44.     }
  45.     return 0;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement