Cod sursa(job #988606)

Utilizator DorelBarbuBarbu Dorel DorelBarbu Data 23 august 2013 14:00:16
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <stdio.h>
#include <cstring>
#define MAX_N 500005
using namespace std;
int n,k,a,b,v[MAX_N], d[5][MAX_N];
void citire()
{
    freopen("divk.in","r",stdin);
    scanf("%d %d %d %d",&n,&k,&a,&b);
    int i;
    for(i=1; i<=n; ++i) scanf("%d",&v[i]);
}
int dinamica()
{
    int i,j,answer=0;
    for(i=1; i<=n; i++)
    {
        d[0][i]=d[0][i-1]+v[i];
        d[1][i]=d[0][i];
        if(d[0][i]%k==0 && a<=i && i<=b) answer++;
    }

    for(i=2; i<=n; i++)
    {
        for(j=i; j<=n; j++)
        {
            d[2][j]=d[0][j]-d[0][i-1];
            if(d[2][j]%k==0 && a<=j-i+1 && j-i+1<=b) answer++;
        }
        memcpy(d[1],d[2],sizeof(d[2]));
    }
    return answer;

}
int main()
{
    freopen("divk.out","w",stdout);
    citire();
    dinamica();
    printf("%d", dinamica());
    return 0;
}