Cod sursa(job #2156171)

Utilizator Constantin.Dragancea Constantin Constantin. Data 8 martie 2018 15:36:34
Problema Divk Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include <bits/stdc++.h>
using namespace std;

int n, k, a, b, dp[500010], rest[100010];
long long ans;

int main(){
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
    cin >> n >> k >> a >> b;
    for (int i=1; i<=n; i++){
        cin >> dp[i];
        dp[i] = (dp[i] + dp[i-1])%k;
        if (i >= a) rest[dp[i - a]]++;
        if (i - b >= 1) rest[dp[i - b - 1]]--;
        ans += rest[dp[i]];
    }
    cout << ans;
    return 0;
}