Cod sursa(job #2154723)

Utilizator Alex18maiAlex Enache Alex18mai Data 7 martie 2018 11:11:58
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin("divk.in");
ofstream cout("divk.out");

int sp[500100];
int rest[100100];

int main() {

    int n, a, b;
    int k;
    cin >> n >> k >> a >> b;

    long long ans = 0;

    for (int i = 1; i <= n; i++) {
        int nr;
        cin >> nr;
        sp[i] = sp[i - 1] + nr;
        sp[i] %= k;

        if (i - a >= 0){
            rest[sp[i-a]]++;
        }
        if (i - b - 1 >= 0){
            rest[sp[i-b-1]]--;
        }
        ans += 1LL * rest[sp[i]];
    }

    cout<<ans;

    return 0;
}