Cod sursa(job #1765031)

Utilizator caesar2001Stoica Alexandru caesar2001 Data 26 septembrie 2016 10:55:19
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>
#include <stdlib.h>
FILE *in,*out;
int nra[100001],nrb[100001],sum[500001];

int main()
{
    in = fopen("divk.in","r");
    out = fopen("divk.out","w");
    int n,k,a,b,i,x;
    long long rez = 0;
    fscanf(in,"%d %d %d %d\n",&n,&k,&a,&b);
    for(i = 1;i <= n;i ++)
    {
        fscanf(in,"%d\n",&x);
        sum[i] = (sum[i-1] + x) % k;
        if(i >= a)
        {
            nra[sum[i-a]] ++;
        }
        if(i > b){
            nrb[sum[i-b-1]] ++;
            }
        rez = rez + nra[sum[i]] - nrb[sum[i]];
    }
    fprintf(out,"%lld",rez);
    return 0;
}