Cod sursa(job #3238286)
| Utilizator | Data | 23 iulie 2024 18:38:01 | |
|---|---|---|---|
| Problema | Secventa 5 | Scor | 0 |
| Compilator | c-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <iostream>
#include <map>
using namespace std;
int v[1048576],n;
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;
}
int main()
{
int l,u;
cin>>n>>l>>u;
for(int i=0;i<n;i++)
cin>>v[i];
cout<<subp(u)-(l>1?subp(l-1):0);
}