Cod sursa(job #3238289)

Utilizator TheodosiusOancea Teodor Stefan Theodosius Data 23 iulie 2024 18:58:14
Problema Secventa 5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream cin("secv5.in");
ofstream cout("secv5.out");
#define int long long 
int v[1048576];
int n;
unordered_map<int,int>m;
int subp(int x){
  int s=0,d=0,dist=0,cnt=0;
  while(d<n){
    if(m[v[d]]==0)
    dist++;
    m[v[d]]++;
    while(dist>x){
      m[v[s]]--;
      if(m[v[s]]==0)
      dist--;
      s++;
    }
    cnt+=(d-s)+1;
    d++;
  }
  for(auto I:m){
    m[I.first]=0;
  };
  return cnt;
}
signed main()
{
   int l,u;
   cin>>n>>l>>u;
   for(int i=0;i<n;i++)
   cin>>v[i];
   cout<<subp(u)-subp(l-1);
}