Advertisement
Guest User

Untitled

a guest
May 20th, 2019
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #include <ext/pb_ds/assoc_container.hpp> // Common file
  3. #include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
  4. using namespace std;
  5. using namespace __gnu_pbds;
  6. typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
  7.  
  8. int main()
  9. {
  10. int t;
  11. cin >> t;
  12. while(t--)
  13. {
  14. int n, q;
  15. unordered_map<long long , int> freq;
  16. cin >> n >> q;
  17. vector<long long> vec;
  18. vec.resize(n + 1);
  19. for(int i = 1; i <= n; i++)
  20. {
  21. cin >> vec[i];
  22. if(vec[i] != 0)
  23. freq[vec[i]]++;
  24. }
  25. while (q--)
  26. {
  27. int which;
  28. cin >> which;
  29. if(which == 1)
  30. {
  31. int a;
  32. long long b;
  33. cin >> a >> b;
  34. if(vec[a] != 0)
  35. freq[vec[a]]--;
  36. if(vec[a] != 0 && freq[vec[a]] == 0)
  37. freq.erase(vec[a]);
  38. vec[a] = b;
  39. if(b != 0)
  40. freq[vec[a]]++;
  41. }
  42. else
  43. cout << freq.size() << endl;
  44. }
  45. }
  46. return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement