Pagini recente » Cod sursa (job #1435791) | Cod sursa (job #978189) | Cod sursa (job #2640913) | Cod sursa (job #87601) | Cod sursa (job #2399866)
#include <fstream>
#include <unordered_map>
#define DIM (1<<20)+1
using namespace std;
int v[DIM];
unordered_map <int,int> st,dr;
int main()
{ int l,u,n,i,j,k,cnt1=0,cnt2=0;long long ans=0;
ifstream f("secv5.in");
ofstream g("secv5.out");
f>>n>>l>>u;
i=1,j=1;
for (k=1;k<=n;++k) {
f>>v[k];
st[v[k]]++;
dr[v[k]]++;
if (st[v[k]]==1) ++cnt1;
if (dr[v[k]]==1) ++cnt2;
while (cnt2>u && j<k) {
--dr[v[j]];
if (dr[v[j]]==0) --cnt2;
++j;
}
if (cnt1>=l) {
while (cnt1>=l && i<=k) {
--st[v[i]];
if (st[v[i]]==0) --cnt1;
++i;
}
--i;
++st[v[i]];
if (st[v[i]]==1 && i<=n) ++cnt1;
}
if (cnt1>=l) ans+=i-j+1;
}
g<<ans<<'\n';
return 0;
}