Cod sursa(job #712374)

Utilizator deneoAdrian Craciun deneo Data 13 martie 2012 13:04:49
Problema Divk Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <fstream>
using namespace std;

ifstream fin ("divk.in");
ofstream fout ("divk.out");

int n, k, a, b, v[500010], r[500010], sum[500010], rez;

int main() {
    int i;
    fin >> n >> k >> a >> b;
    for (i = 1; i <= n; ++i)
        fin >> v[i];
    for (i = 1; i <= n; ++i)
        sum[i] = sum[i - 1] + v[i];
    for (i = a - 1; i <= n; ++i) {
        ++r[sum[i - a + 1] % k];
        if (i >= b)
            --r[sum[i - b] % k];
        rez += r[sum[i] % k];
    }
    fout << rez << "\n";
    fout.close();
    return 0;
}