Cod sursa(job #1515278)

Utilizator Julian.FMI Caluian Iulian Julian. Data 1 noiembrie 2015 13:20:44
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <iostream>
#include <fstream>
#define nmax 500005
using namespace std;
FILE* fin=fopen("divk.in","r");
ofstream fout("divk.out");
long r[nmax];
int main()
{long n,k,a,b,i,j,x,fina;
long long nr=0;

    fscanf(fin,"%ld%ld%ld%ld",&n,&k,&a,&b);
    r[0]=0;
    for(i=1;i<=n;i++)
    {
        fscanf(fin,"%ld",&x);
        r[i]=(x%k+ r[i-1])%k;
        if(a<=1 && r[i]==0)nr++;
    }

    for(i=1;i<=n-a+1;i++)
    {fina=min(i+b-1,n);
        for(j=i+a;j<=fina;j++)
            if(r[j]==r[i])++nr;
    }

fout<<nr;
}