Cod sursa(job #1497806)

Utilizator BogdacutuSeniuc Bogdan Bogdacutu Data 7 octombrie 2015 13:45:40
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <iostream>
#include <fstream>
#include <math.h>

using namespace std;

int main() {
    ifstream fin("divk.in");
    ofstream fout("divk.out");
    int n, k, a, b, x;
    fin >> n >> k >> a >> b;
    int num[500001], r[500001];
    long long sol = 0;
    num[0] = 0;
    r[0] = 1;
    for (int i = 1; i <= n; i++) {
        fin >> x;
        num[i] = (num[i - 1] + x) % k;
        r[i] = 0;
    }
    for (int i = a; i <= n; i++) {
        sol += r[num[i]];
        r[num[i - a]]++;
        if (i >= b) r[num[i - b]]--;
    }
    fout << sol << endl;
    return 0;
}