Cod sursa(job #1592151)

Utilizator demetriad-dagpagDavid Demetriad demetriad-dagpag Data 7 februarie 2016 07:18:46
Problema Divk Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>
#include <stdlib.h>
int s[500001],f[500001];
int main()
{
    int n,k,a,b,i,r,sc,x;
    long long nr=0;
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
    scanf("%d%d%d%d",&n,&k,&a,&b);
    sc=0;
    for(i=1; i<=n; i++)
    {
        scanf("%d",&x);
        sc=(sc+x)%k;
        s[i]=sc;
    }
    for(i=a; i<=b; i++)
    {
        f[s[i-a]]++;
        nr+=f[s[i]];
    }
    for(i=b+1; i<=n; i++)
    {
        f[s[i-a]]++;
        f[s[i-b-1]]--;
        nr+=f[s[i]];
    }
    printf("%lld\n",nr);

    return 0;
}