Cod sursa(job #1826407)

Utilizator rares1012Rares Cautis rares1012 Data 10 decembrie 2016 13:40:06
Problema Divk Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>
#include <stdlib.h>
#define BufL 16384

long long int v[500001];
char Buf[BufL];
int p=BufL;
FILE*fi;

int NextCh(){
    if(p==BufL){
        fread(Buf,BufL,1,fi);
        p=0;
    }
    return Buf[p++];
}

int Read1(){
    char c;
    int n=0;
    c=NextCh();
    while(c<'0' || c>'9')
        c=NextCh();
    while(c>='0' && c<='9')
    {
        n=n*10+c-'0';
        c=NextCh();
    }
    return n;
}

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