Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //obrazy i pokoje
- #include <iostream>
- #include <vector>
- using namespace std;
- int main()
- {
- int n, l;
- cin >> n;
- for(int t = 0; t < n; t++)
- {
- cin >> l;
- int obrazy[l], sigm[l];
- vector <int> stack;
- int wartosc;
- for(int i = 0; i < l; i++){sigm[i] = 0;}
- for(int i = 0; i < l; i++){
- cin >> wartosc;
- obrazy[i] = wartosc;
- sigm[wartosc-1] += 1;
- }
- for(int i = 0; i < l; i++){
- if(sigm[i] == 0)
- stack.push_back(i);
- }
- int i, k;
- while(!stack.empty()){
- i = stack.back();
- stack.pop_back();
- k = obrazy[i] - 1;
- sigm[k] -= 1;
- if(sigm[k] == 0)
- stack.push_back(k);
- }
- int suma = 0;
- for(int i = 0; i < l; i++){
- if(sigm[i] > 0)
- suma = suma + 1;
- }
- cout << suma << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement