Cod sursa(job #2156169)

Utilizator Constantin.Dragancea Constantin Constantin. Data 8 martie 2018 15:35:02
Problema Divk Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.46 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 - b >= 1) rest[dp[i - b - 1]]--;
        if (i >= a) rest[dp[i - a]]++, ans += rest[dp[i]];
    }
    cout << ans;
    return 0;
}