Pagini recente » Cod sursa (job #2101059) | Cod sursa (job #2628619) | Cod sursa (job #2548126) | Cod sursa (job #2890212) | Cod sursa (job #3122273)
#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 <unsigned,int> ap;
int nrDist=1,nrSecv=0;
ap[v[1]]++;
int i=1,j=2;
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);
}