Pagini recente » Cod sursa (job #2590711) | Cod sursa (job #943716) | Cod sursa (job #2264219) | Cod sursa (job #2911188) | Cod sursa (job #3122255)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream f("secv5.in");
ofstream g("secv5.out");
int v[1048578],n;
int calcul(int L,int U)
{
if(L!=1)
return calcul(1,U)-calcul(1,L-1);
unordered_map <int,int> ap;
int nrDist=1,nrSecv=0;
ap[v[0]]++;
int i=0,j=1;
while(i<n)
{
if(j<n&&((ap.find(v[j])==ap.end()&&nrDist+1<=U)||(ap.find(v[j])!=ap.end())))
{
if(ap.find(v[j])==ap.end())
nrDist++;
ap[v[j]]++;
j++;
}
else
{
nrSecv+=j-i;
ap[v[i]]--;
if(ap[v[i]]==0)
nrDist--;
i++;
}
}
return nrSecv;
}
int main()
{
int l,u,i;
f>>n>>l>>u;
for(i=1;i<=n;i++)
f>>v[i];
g<<calcul(l,u);
}