Cod sursa(job #712883)

Utilizator deneoAdrian Craciun deneo Data 13 martie 2012 21:20:13
Problema Divk Scor 100
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");

long long 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; i <= n; ++i) {
        ++r[sum[i - a] % k];
        if (i > b)
            --r[sum[i - b - 1] % k];
        rez += r[sum[i] % k];
    }
    fout << rez << "\n";
    fout.close();
    return 0;
}