Cod sursa(job #2258827)

Utilizator NashikAndrei Feodorov Nashik Data 12 octombrie 2018 11:23:04
Problema Divk Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
//#include <iostream>
//#include <fstream>
#include <cstdio>
using namespace std;
//ifstream cin("divk.in");
//ofstream cout("divk.out");
int n,k,nr1,nr2;
int a[500005];
long long nr;
int s[100005];
int main()
{
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
    int i,j,x;
    //cin>>n>>k>>nr1>>nr2;
    scanf("%d%d%d%d", &n,&k,&nr1,&nr2);
    for(i=1;i<=n;i++){
        //cin>>x;
        scanf("%d",&x);
        a[i]=a[i-1]+x;
        if(i-nr2-1>=0)
            s[a[i-nr2-1]%k]--;
        if(i-nr1>=0){
            s[a[i-nr1]%k]++;
            nr+=s[a[i]%k];
        }
    }
    //cout<<nr;
    printf("%d",nr);
    return 0;
}