Cod sursa(job #3238287)
| Utilizator | Data | 23 iulie 2024 18:38:51 | |
|---|---|---|---|
| Problema | Secventa 5 | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
#include <map>
using namespace std;
ifstream cin("secv5.in");
ofstream cout("secv5.out");
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);
}