Cod sursa(job #1713177)

Utilizator silkMarin Dragos silk Data 4 iunie 2016 21:45:26
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <cstdio>
#define NMax 500005

long long sum[NMax];
long long v[NMax];

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

    int i,j,A,B,n,k,x;
    long long ans=0;

    scanf("%d %d %d %d",&n,&k,&A,&B);

    for( i = 1; i <= n; ++i )
    {
        scanf("%d",&x);
        sum[i] = ( sum[i-1] + x ) % k;
    }

    for( i = A; i <= n; ++i )
    {
        v[ sum[i-A] ]++;

        ans += v[ sum[i] ];

        if(i-B>=0)
        v[ sum[i-B] ]--;
    }

    printf("%lld\n",ans);



return 0;
}