Cod sursa(job #1506758)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 20 octombrie 2015 22:55:30
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include<stdio.h>
using namespace std;
int s[500010],vc[100010];
int main(){
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
    int n,k,a,b,x,i;
    long long sol=0;
    scanf("%d%d%d%d",&n,&k,&a,&b);
    vc[0]=1;
    for(i=1;i<=n;i++){
        scanf("%d",&x);
        s[i]=(s[i-1]+x)%k;
    }
    for(i=a;i<=n;i++){
        sol+=vc[s[i]];
        vc[s[i-a+1]]++;
        if(i>=b)
            vc[s[i-b]]--;
    }
    printf("%lld",sol);
    return 0;
}