Cod sursa(job #2673249)

Utilizator Anna123Anna Negrea Anna123 Data 16 noiembrie 2020 12:35:53
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#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;
}