Cod sursa(job #1687878)

Utilizator CrystyAngelDinu Cristian CrystyAngel Data 13 aprilie 2016 09:36:55
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include <cstdio>

using namespace std;

long long i,j,n,a,b,k,s;
long long m[500100],d[500100];

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

    scanf("%d%d%d%d",&n,&k,&a,&b);

    int x;

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

    for(i=a; i<=n; ++i)
    {
        d[m[i-a]]++;
        if(i>b)
            d[m[i-b-1]]--;
        s+=d[m[i]];
    }
    printf("%lld",s);
}