Cod sursa(job #671296)

Utilizator crazzytudTudor Popa crazzytud Data 31 ianuarie 2012 09:35:30
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
const int C=9001,N=100001;
int sum[N],f[N];
int main()
{
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
    int n,i,x,j,A,B,K,p;
    scanf("%d%d%d%d",&n,&K,&A,&B);
    long long nr=0;
    for(i=1;i<=n;i++)
    {
        scanf("%d",&x);
        sum[i]=(sum[i-1]+x)%K;
        p=0;
        for(j=i-1;j>=i-A+1;j--)
            if(sum[j]==sum[i])
            {
                p++;
            }
        for(j=i-B-1;j>=0;j--)
            if(sum[j]==sum[i])
            {
                p++;
            }
        nr-=p;
        f[sum[i]]++;
    }
    f[0]++;
    for(i=0;i<=n;i++)
    {
        nr+=f[i]*(f[i]-1)/2;
        //nr%=C;
    }
    printf("%d",nr);
}