Pagini recente » Cod sursa (job #2359480) | Cod sursa (job #2732164) | Cod sursa (job #3195271) | Cod sursa (job #148902) | Cod sursa (job #3138030)
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin ("secv5.in");
ofstream fout ("secv5.out");
unordered_map <long long ,int> fr;
int i,n,l,u,nrc,a[1048577],b[1048577],st,dr;
long long v[1048577];
long long sol;
int main ()
{
fin>>n>>l>>u;
l--;
for (i=1; i<=n; i++)
fin>>v[i];
st=1;
for (i=1; i<=n; i++)
{
dr=i;
fr[v[i]]++;
if (fr[v[i]]==1)
nrc++;
while (nrc>l)
{
fr[v[st]]--;
if (fr[v[st]]==0)
nrc--;
st++;
}
a[i]=dr-st+1;
}
fr.clear ();
nrc=0;
st=1;
for (i=1; i<=n; i++)
{
dr=i;
fr[v[i]]++;
if (fr[v[i]]==1)
nrc++;
while (nrc>u)
{
fr[v[st]]--;
if (fr[v[st]]==0)
nrc--;
st++;
}
b[i]=dr-st+1;
}
for (i=1; i<=n; i++)
sol+=b[i]-a[i];
fout<<sol;
return 0;
}