Cod sursa(job #9708)

Utilizator 004444Lapusan Tudor 004444 Data 27 ianuarie 2007 16:46:03
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Unirea 2007, clasele 11-12 Marime 0.98 kb
#include <stdio.h>
#define MAX 2000001


int n, o, p;
long int sol, nr;
int a[MAX], s[MAX];


void citire ();
void solve ();
void afisare ();


int main ()
{
    freopen ( "secv5.in", "r", stdin );
    freopen ( "secv5.out", "w", stdout );

    citire ();
    solve ();
    afisare ();

    return 0;
}

void citire ()
{
    int i;

    scanf ( "%d %d %d", &n, &o, &p );
    for ( i = 1; i <= n; i++ )
        scanf ( "%d", &a[i] );

//    for ( i = 1; i <= n; i++ )
//        printf ( "%d ", a[i] );
}

void solve ()
{
	int i, j;

    for ( i = 1; i <= n; i++ )
    {
        nr = 0;
        for ( j = i; j <= n; j++ )
        {
            if ( s[a[j]] != i )
            {
                s[a[j]] = i;
                nr++;
            }

			if ( nr >= o && nr <= p )
                sol++;
            if ( nr > p )
                break;
        }
    }
}
        
void afisare ()
{
    printf ( "%ld", sol );
}