Cod sursa(job #2156169)
| Utilizator | 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;
}
