Pagini recente » Cod sursa (job #1532565) | Cod sursa (job #238470) | Cod sursa (job #2648652) | Cod sursa (job #1960548) | Cod sursa (job #2561044)
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long int unll;
ifstream f("secv5.in");
ofstream g("secv5.out");
unll n , l, u;
unll lef , rig, ans;
unll v[1 << 20 + 5];
unordered_map<int,int> lf, rt;
void Read()
{
f>>n>>l>>u;
for(int i = 1;i <= n;++i)
f>>v[i];
}
void Solve()
{
lef = rig = 1;
for(int i = 1;i <= n;++i)
{
lf[v[i]]++;
rt[v[i]]++;
while(lf.size() >= l)
{
lf[v[lef]]--;
if(lf[v[lef]] == 0)
lf.erase(v[lef]);
++lef;
}
while(rt.size() > u)
{
rt[v[rig]]--;
if(rt[v[rig]] == 0)
rt.erase(v[rig]);
++rig;
}
ans += lef - rig;
}
g<<ans<<'\n';
}
int main()
{
Read();
Solve();
return 0;
}