Pagini recente » Cod sursa (job #738288) | Cod sursa (job #3350951) | Borderou de evaluare (job #3329452) | Cod sursa (job #1567091) | Cod sursa (job #3348112)
#include <bits/stdc++.h>
#define NMAX 1048576
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
int n, v[NMAX+1];
long long solve(int nr_dif)
{
long long nr_subsecv=0;
map<int, int> nr;
int cnt=0, st=1;
for(int i=1; i<=n; i++)
{
nr[v[i]]++;
if(nr[v[i]]==1) cnt++;
while(cnt>nr_dif && st<=i)
{
nr[v[st]]--;
if(nr[v[st]]==0) cnt--;
st++;
}
nr_subsecv+=i-st+1;
}
nr.clear();
return nr_subsecv;
}
int main()
{
int l, u;
in >> n >> l >> u;
for(int i=1; i<=n; i++)
{
in >> v[i];
}
out << solve(u)-solve(l-1);
return 0;
}