Cod sursa(job #57867)

Utilizator cos_minBondane Cosmin cos_min Data 3 mai 2007 11:53:27
Problema Divk Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
// 50 pcte O(n*(B-A)) cre k asta ii complexitatea
#include <stdio.h>
#define in "divk.in"
#define out "divk.out"

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

void Read();
void Solve();

int main()
{
    Read();
    
    return 0;
}

void Read()
{
    
    int sum = 0, t = 0, l, val = 0;
    
    s[0] = 0;
    
    FILE *fin = fopen(in,"r");
    fscanf(fin,"%d",&n);
    fscanf(fin,"%d",&k);
    fscanf(fin,"%d",&a);
    fscanf(fin,"%d",&b);
    
    for ( i = 1; i <= n; i++ )
    {
        fscanf(fin,"%d",&val);
        s[i] += (s[i-1] + val%k)%k;
        for ( l = a; l <= b; l++ )
        {
            if ( i - l >= 0 ) 
            {
                if ( (s[i] - s[i-l]) == 0 ) 
                {
                    t++;
                }    
            }
            else  l = b;
        } 
    }    
    fclose(fin);
    FILE *fout = fopen(out,"w");
    fprintf(fout,"%d", t);
    fclose(fout);
}