fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n,q,x,y;
  6. cin>>n;
  7. vector<int>v(n),frq(1000006);
  8. for(int &i:v)cin>>i;
  9. int l=-1,r=-1,ans=0;
  10. cin>>q;
  11. while(q--) {
  12. cin>>x>>y;
  13. x--,y--;
  14. if(l==-1||y<=l||x>=r) {
  15. l=r=x;
  16. while(r<=y)ans+=(frq[v[r]]++==0),r++;
  17. r--;
  18. }
  19. else {
  20. while(l<x)ans-=(--frq[v[l]]==0),l++;
  21. while(l>x)ans+=(frq[v[l-1]]++==0),l--;
  22. while(r<y)ans+=(frq[v[r+1]]++==0),r++;
  23. while(r>y)ans-=(--frq[v[r]]==0),r--;
  24. }
  25. cout<<ans<<endl;
  26. }
  27. }
  28.  
Success #stdin #stdout 0.01s 7252KB
stdin
Standard input is empty
stdout
Standard output is empty