Pagini recente » Cod sursa (job #2054938) | Profil Bajuucata1 | Cod sursa (job #1136029) | Cod sursa (job #1854547) | Cod sursa (job #2454749)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
const int DIM = (1 << 20) + 7;
unordered_map <int, int> H;
int v[DIM];
int n;
long long get(int p)
{
H.clear();
int l = 1;
H[v[1]] = 1;
int nr = 1;
long long ans = 1;
for(int i = 2; i <= n; i++)
{
if(H[v[i]] == 0)
{
nr++;
}
H[v[i]]++;
while(l <= i && nr > p)
{
if(H[v[l]] == 1)
{
nr--;
}
H[v[l]]--;
l++;
}
int len = i - l + 1;
ans += len;
}
return ans;
}
main()
{
int l, r;
fin >> n >> l >> r;
for(int i = 1; i <= n; i++)
fin >> v[i];
long long res = get(r);
if(l != 1)
res -= get(l - 1);
fout << res;
}