Cod sursa(job #1097532)

Utilizator alexiaambrusAlexia Ambrus alexiaambrus Data 3 februarie 2014 15:58:55
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <cstdio>
#define Nmax 500005

using namespace std;

int N,v[Nmax],r[Nmax],t[100005];

int main()
{
    long long sol;
    int i,x,A,B,K;
    freopen ("divk.in","r",stdin);
    freopen ("divk.out","w",stdout);
    scanf("%d%d%d%d", &N,&K,&A,&B);
    for(i=1;i<=N;++i)
    {
        scanf("%d", &x);
        r[i]=(r[i-1]+x)%K;
    }
    sol=0; ++t[0];
    for(i=A;i<=N;++i)
    {
        sol+=t[r[i]];
        if(i-B>=0)
            --t[r[i-B]];
        ++t[r[i-A+1]];
    }
    printf("%lld\n", sol);
    return 0;
}