Cod sursa(job #1397899)

Utilizator atatomirTatomir Alex atatomir Data 23 martie 2015 20:24:58
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <iostream>
#include <cstdio>

using namespace std;

#define maxN 500011
#define maxK 100011

long n,k,a,b,i;
long v[maxN];
long cnt[maxK];

long long ans;

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

    scanf("%ld%ld%ld%ld",&n,&k,&a,&b);
    for(i=1;i<=n;i++){
        scanf("%ld",&v[i]);
        v[i] += v[i-1];
        v[i] %= k;
    }

    cnt[0]++;
    for(i=a;i<=n;i++){
        if(i-b-1>=0) cnt[v[i-b-1]]--;

        ans += cnt[v[i]];
        cnt[v[i-a]]++;
    }

    printf("%lld",ans);

    return 0;
}