Cod sursa(job #1721655)

Utilizator liviu23Liviu Andrei liviu23 Data 26 iunie 2016 11:56:56
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#include <iostream>
using namespace std;

int n,k,a,b,frecv[100005];
long long int sum[500005];

int main()
{
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
    scanf("%d%d%d%d",&n,&k,&a,&b);
    long long int rasp=0;
    for(int i=1;i<a;i++) {
        scanf("%d",&sum[i]);
        sum[i]+=sum[i-1];
    }
    for(int i=a;i<=b;i++) {
        scanf("%d",&sum[i]);
        sum[i]+=sum[i-1];
        frecv[sum[i-a]%k]++;
        rasp+=frecv[sum[i]%k];
    }
    for(int i=b+1;i<=n;i++) {
        scanf("%d",&sum[i]);
        sum[i]+=sum[i-1];
        frecv[sum[i-a]%k]++;
        frecv[sum[i-b-1]%k]--;
        rasp+=frecv[sum[i]%k];
    }
    printf("%lld",rasp);
    return 0;
}