Pagini recente » Cod sursa (job #1139318) | Cod sursa (job #621180) | Cod sursa (job #1043390) | Cod sursa (job #2289161) | Cod sursa (job #2209767)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
unsigned int v[1048580],i,j,n,u,l,k,w,nrs,nrdif;
int f[(1<<20)+2];
struct element
{
unsigned int val,poz;
}a[1048580];
bool cmp (element a, element b)
{
if(a.val<b.val)
{
return true;
}
else
{
return false;
}
}
int main()
{
fin>>n>>l>>u;
for(i=1;i<=n;i++)
{
fin>>v[i];
a[i].val=v[i];
a[i].poz=i;
}
sort(a+1,a+n+1,cmp);
k=0;
w=0;
for(i=1;i<=n;i++)
{
if(w<a[i].val)
{
k++;
w=a[i].val;
v[a[i].poz]=k;
}
else
{
v[a[i].poz]=k;
}
}
nrs=0;
for(i=1;i+l-1<=n;i++)
{
memset(f,0,((1<<20)+2)*sizeof(int));
nrdif=0;
for(j=i;j<=n && nrdif<=u;j++)
{
if(f[v[j]]==0)
{
nrdif++;
f[v[j]]=1;
}
if(nrdif>=l && nrdif<=u)
{
nrs++;
}
}
}
fout<<nrs;
fin.close();
fout.close();
return 0;
}