Cod sursa(job #1954132)

Utilizator rexlcdTenea Mihai rexlcd Data 5 aprilie 2017 10:54:56
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <cstdio>

#define ULL unsigned long long

using namespace std;

ULL dp[500002];

int main()
{
    freopen("divk.in", "r", stdin);
    freopen("divk.out", "w", stdout);
    int n,k,a,b;
    scanf("%d %d %d %d", &n, &k, &a, &b);
    for(int i=1;i<=n;i++)
    {
        int x; scanf("%d", &x);
        ULL t=x;
        dp[i]=(dp[i-1]+t)%k;
    }
    ULL sol=0;
    for(int l=a;l<=b;l++)
    {
        for(int i=l;i<=n;i++)
        {
            if((dp[i]-dp[i-l])%k==0)
                sol++;
        }
    }
    printf("%I64d\n", sol);
    fclose(stdin);
    fclose(stdout);
    return 0;
}