Cod sursa(job #1606638)

Utilizator stefan.friptuPetru Stefan Friptu stefan.friptu Data 20 februarie 2016 13:55:16
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include<cstdio>

using namespace std;

long n,k,l,u,i,s;
long val,v[500005],f[500005];

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

    scanf("%d%d%d%d",&n,&k,&l,&u);

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

    for(i=l;i<=n;i++)
    {
        f[v[i-l]]++;
        if(i>u)
            f[v[i-u-1]]--;
        s+=f[v[i]];
    }

    printf("%d",s);

    return 0;
}