Cod sursa(job #731446)

Utilizator mihaitza22Mihai Nan mihaitza22 Data 8 aprilie 2012 02:33:44
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <iostream>
#include <stdio.h>

#define nmax 500000
using namespace std;

long long N, K, A, B, i;
long long v[nmax], sum[nmax], mih[nmax], rez;

int main()
{
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
    scanf("%lld %lld %lld %lld\n",&N, &K, &A, &B);
    for (i=1;i<=N;i++)
    {
        scanf("%lld\n", &v[i]);
    }
    for (i=1;i<=N;i++)
        sum[i] = sum[i-1] + v[i];
    for (i=A;i<=N;++i)
    {
        ++mih[sum[i-A]%K];
        if (i>B)
            --mih[sum[i-B-1]%K];
        rez += mih[sum[i]%K];
    }
    cout<<rez;
}