Cod sursa(job #1727399)

Utilizator loo_k01Luca Silviu Catalin loo_k01 Data 10 iulie 2016 18:24:34
Problema Divk Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, k, a, b, x;
long long sum[500005], v[500005], sol;

int main()
{
    int i;
    fin >> n >> k >> a >> b;

    for(i = 1; i <= n; i++)
    {
        fin >> x;

        v[i] = (v[i - 1] + a) % k; /// sume partiale

        if(i >= a)
            sum[v[i - a]]++;

        if(i > b)
            sum[v[i - b - 1]]--;

        sol += 1LL * sum[v[i]];
    }

    fout << sol << "\n";

    return 0;
}