Pagini recente » Cod sursa (job #1571526) | Cod sursa (job #2203230) | Cod sursa (job #1107422) | Cod sursa (job #955502) | Cod sursa (job #2673249)
#include <bits/stdc++.h>
#define DimMax 1024
#define MOD 666013
using namespace std;
ifstream fin ( "secv5.in" );
ofstream fout ( "secv5.out" );
struct Hash
{
vector<int> a;
};
Hash h[MOD];
int n, l, u;
int v[DimMax * DimMax + 1];
int ans;
void adauga ( int x )
{
int cod = x % MOD;
h[cod].a.push_back(x);
}
bool exista ( int x )
{
int cod = x % MOD;
int i = 0; int N = h[cod].a.size();
while ( i < N && h[cod].a[i] != x )
i++;
if ( i == N ) return false;
else return true;
}
void GolesteHash()
{
for ( int i = 0; i < MOD; i++ )
h[i].a.clear();
}
int main()
{
fin >> n >> l >> u;
for ( int i = 1; i <= n; i++ )
fin >> v[i];
for ( int i = 1; i <= n; i++ )
{
int nr = 0;
int j = i;
GolesteHash();
while ( j <= n && nr <= u )
{
if ( !exista(v[j]) )
{
nr++;
adauga(v[j]);
}
if ( nr >= l )
ans++;
j++;
}
}
fout << ans;
return 0;
}