Cod sursa(job #3171232)

Utilizator Mihai00700Mihai Ghetu Mihai00700 Data 18 noiembrie 2023 16:22:30
Problema Secventa 5 Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
#include <unordered_map>
const int NMAX=1e7;
using namespace std;
long long v[NMAX + 1];
int n;
int cate(int max){
  unordered_map<long long, int> frecv;
  int l, r, dis, cnt;
  l = r = dis = cnt = 0;
  while(r <n){
    frecv[v[r]]++;
    if(frecv[v[r]] == 1){
      dis++;
    }
    r++;
    while(dis > max){
      frecv[v[l]]--;
      if(frecv[v[l]] == 0){
        dis--;
      }
      l++;
    }
    cnt+= r - l;
  }
  return cnt;
}
int main(){
    int x, y, i;
    ifstream cin("secv5.in");
    cin>>n>>x>>y;
    for(i=0;i<n;i++){
      cin>>v[i];
    }
    cin.close();
    ofstream cout("secv5.out");
    cout<<cate(y) - cate(x - 1);
    cout.close();
    return 0;
}