Cod sursa(job #841666)

Utilizator assa98Andrei Stanciu assa98 Data 24 decembrie 2012 16:36:43
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>

int n;
int x;
int v[100100];
int s[500100];

long long sol;
int k,a,b;

int main()
{
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
    scanf("%d%d%d%d",&n,&k,&a,&b);

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

    for(int i=a; i<b; i++)
    {
        scanf("%d",&x);
        s[i]=(s[i-1]+x)%k;
        v[s[i-a]]++;
        sol+=v[s[i]];
    }

    for(int i=b; i<=n; i++)
    {
        scanf("%d",&x);
        s[i]=(s[i-1]+x)%k;
        v[s[i-a]]++;
        sol+=v[s[i]];
        v[s[i-b]]--;
    }

    printf("%lld",sol);
    return 0;
}