Cod sursa(job #1831033)

Utilizator rares1012Rares Cautis rares1012 Data 17 decembrie 2016 13:04:36
Problema Divk Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.49 kb
#include <stdio.h>
#include <stdlib.h>

int v[500001],f[100000];

int main()
{
    int n,a,b,k,q,i;
    long long int s=0;
    FILE*fi,*fo;
    fi=fopen("divk.in","r");
    fo=fopen("divk.out","w");
    fscanf(fi,"%d%d%d%d",&n,&k,&a,&b);
    for(i=1;i<=n;i++)
    {
        fscanf(fi,"%d",&q);
        v[i]=(v[i-1]+q)%k;
        if(i>=a)
            f[v[i-a]]++;
        if(i>b)
            f[v[i-b-1]]--;
        s+=f[v[i]];
    }
    fprintf(fo,"%lld",s);
    fclose(fi);
    fclose(fo);
    return 0;
}