Pagini recente » Cod sursa (job #1655675) | Cod sursa (job #1563015) | Cod sursa (job #1546886) | Cod sursa (job #484719) | Cod sursa (job #1280434)
#include <cstdio>
#include <unordered_map>
#include <iostream>
using namespace std;
unsigned int n;
unsigned long nrsecv(unsigned int lim, unsigned int *a)
{
unordered_map <unsigned int, unsigned int> coada;
unsigned int i,inc=0;
unsigned long nrs=0;
for(i=0;i<n;i++)
{
coada[a[i]]++;
while(coada.size()>lim)
{
coada[a[inc]]--;
if(coada[a[inc]]==0)
coada.erase(a[inc]);
inc++;
}
nrs+=i-inc;
}
return nrs;
}
int main()
{
FILE *f=fopen("secv5.in","r");
FILE *g=fopen("secv5.out","w");
unsigned int x[1048577];
unsigned int l,i,u;
unsigned long s1, s2;
fscanf(f,"%u %u %u",&n,&l,&u);
for(i=0;i<n;i++)
fscanf(f,"%u",x+i);
s1=nrsecv(l-1,x);
s2=nrsecv(u,x);
fprintf(g,"%ld",s2-s1);
return 0;
}