Pagini recente » Cod sursa (job #824811) | Cod sursa (job #256888) | Cod sursa (job #1215059) | Cod sursa (job #1657737) | Cod sursa (job #1135270)
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
long long solve(int& n,int& k,int& a,int& b,vector<int>& v) {
long long ret = 0;
vector<int> sum(n + 1,0);
vector<int> freq(k,0);
for (int i = 1; i <= n; i++) {
sum[i] = (sum[i - 1] + v[i - 1]) % k;
if (i - a >= 0) {
freq[sum[i - a ]]++;
}
if (i - b - 1 >= 0) {
freq[sum[i - b - 1]]--;
}
ret += freq[sum[i]];
}
return ret;
}
int main()
{
ifstream cin("divk.in");
ofstream cout("divk.out");
int N, K, A, B;
cin >> N >> K >> A >> B;
vector<int> v(N);
for (int i = 0; i < N; i++) {
cin >> v[i];
}
cout << solve(N, K, A, B, v) << "\n";
return 0;
}