Cod sursa(job #2156631)
| Utilizator | Data | 8 martie 2018 21:23:59 | |
|---|---|---|---|
| Problema | Divk | Scor | 100 |
| 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(){
ifstream cin ("divk.in");
ofstream cout ("divk.out");
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;
}
