Cod sursa(job #1905705)

Utilizator stefan_creastaStefan Creasta stefan_creasta Data 6 martie 2017 10:24:14
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <cstdio>
using namespace std;
const int NMAX = 500005;
int v[NMAX];
int vf[NMAX];

int main()
{
    int n, k, a, b, i;
    long long int sol = 0;
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
    scanf("%d%d%d%d", &n, &k, &a, &b);
    for(i = 1;i <= n; ++i) {
        scanf("%d", &v[i]);
        v[i] += v[i - 1];
        v[i] %= k;
    }
    for(i = 1;i <= n; ++i) {
        vf[v[i - a]] += 1 * (i >= a);
        vf[v[i - b - 1]] -= 1 * (i > b);
        sol += vf[v[i]];
    }
    printf("%lld\n", sol);
    return 0;
}