Cod sursa(job #1673097)

Utilizator alexandra_paticaAndreea Alexandra Patica alexandra_patica Data 3 aprilie 2016 14:15:51
Problema Divk Scor 30
Compilator cpp Status done
Runda oni_5 Marime 0.81 kb
#include <cstdio>
using namespace std;
//ifstream f ("divk.in");
//ofstream g ("divk.out");
FILE *f, *g;
int n, k, a, b, i, x, m, j, r, ap[100000];
long long s[500001], S;
int main ()
{
    freopen("divk.in", "r", stdin);
    freopen("divk.out", "w", stdout);
    scanf("%d%d%d%d", &n, &k, &a, &b);
    m=0;
    for (i=1; i<=n; i++){
            scanf("%d", &x);
        s[i]=s[i-1]+x;
        r=s[i]%k;
        if (ap[r]>0||r==0){
            for (j=a; j<=b; j++){
                if (j<=i){
                    S=s[i]-s[i-j];
                    if (S%k==0) {
                        m++;
    //                    g << i << " " << j << '\n';
                    }
                }
                else break;
            }
        }
        ap[r]=i;
    }
    printf("%d", m);
    return 0;
}