Cod sursa(job #9810)

Utilizator butyGeorge Butnaru buty Data 27 ianuarie 2007 16:59:11
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Unirea 2007, clasele 11-12 Marime 1.12 kb
#include<stdio.h>
long long N,U,L,S,t[10000];
int a[10000];
void cit()
{
    int i;
    freopen("secv5.in","r",stdin);
    scanf("%d%d%d",&N,&L,&U);
    for(i=1;i<=N;i++)
        scanf("%d",&a[i]);
}
void rez()
{
    int i,j,k,ok,x,y;
    for(i=1;i<=N;i++)
    {
        ok=1;
        for(j=i-1;j>=1&&ok;j--)
            if(a[i]==a[j])
                ok=0;
        if(ok)
            t[i]=t[i-1]+1;
        else
            t[i]=t[i-1];
    }
    for(i=1;i<N;i++)
    {

        for(j=i;j<=N;j++)
            if(t[j]-t[i]+1>=L)
            {
                x=j;
                break;
            }
        for(j=j+1;j<=N;j++)
            if(t[j]-t[i]+1>U)
            {
                //y=j-1;
                break;
            }


        S+=j-x;
        for(j=i+1;j<=N;j++)
            if(a[i]==a[j])
            {
                for(k=j;k<=N;k++)
                    t[k]++;
                break;
            }
    }
}
void scr()
{
    freopen("secv5.out","w",stdout);
    printf("%Ld\n",S);
    fclose(stdout);
}
int main()
{
    cit();
    rez();
    scr();
    return 0;
}