Cod sursa(job #1669084)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 30 martie 2016 12:38:46
Problema Divk Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>

#include <cstdio>

using namespace std;

int n,k,a,b,i,j,v[500001];

long long s,s2,secv;

FILE *fin = fopen ("divk.in", "r");

FILE *fout = fopen ("divk.out", "w");

//ifstream fin ("divk.in");

//ofstream fout ("divk.out");

int main (){

    //fin>>n>>k>>a>>b;
    fscanf (fin, "%d%d%d%d",&n,&k,&a,&b);
    for (i=1;i<=n;i++)
        fscanf (fin, "%d", &v[i]);
        //fin>>v[i];

    for (i=1;i<=a;i++)
        s+=v[i];
    //fixam inceputul secventei;

    for (i=1;i<=n-a+1;i++){
        if (i != 1){
            s-=v[i-1];
            s+=v[i+a-1];
        }
        if (s % k == 0)
            secv++;
        s2 = s;
        for (j=i+a;j<=i+b-1 && j<=n;j++){
            s2+=v[j];
            if (s2 % k == 0)
                secv++;
        }
    }
    fprintf (fout, "%lld", secv);
    //fout<<secv;

    return 0;
}