Cod sursa(job #2465988)

Utilizator ArdeleanOficialAlexandru ArdeleanOficial Data 1 octombrie 2019 10:11:19
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int N = 5e5 + 7;

int s[N];
int f[N / 5];

int main()
{
    int n, k, a, b;
    long long val, ans(0);
    fin >> n >> k >> a >> b;
    for (int i = 1; i <= n; ++i) {
        fin >> val;
        s[i] = val % k;
        s[i] += s[i - 1];
        if (s[i] >= k)
            s[i] -= k;
    }
    for (int i = 1; i <= n; ++i) {
        if (i >= a) {
            ++f[s[i - a]];
            ans += f[s[i]];
        }
        if (i >= b)
            --f[s[i - b]];
    }
    fout << ans;
    return 0;
}