Pagini recente » Cod sursa (job #183634) | Cod sursa (job #2585151) | Cod sursa (job #71004) | Cod sursa (job #2003777) | Cod sursa (job #664535)
Cod sursa(job #664535)
#include <fstream>
using namespace std;
ifstream in ("divk.in");
ofstream out ("divk.out");
int n,a,b,k,cnt[500001],ant,v[500003];
long long rez;
int main () {
in >> n >>k >>a>>b;
ant = 0;
for (int i = 1; i <= a; ++i) {
in >> v[i];
v[i] = (v[i] + ant) % k;
ant = v[i];
if (v[i]==0)++rez;
}
for (int i = a+1; i <= b + 2; ++i){
in >> v[i];
v[i] = (v[i] + ant) % k;
ant = v[i];
cnt[v[i-a]]++;
if (v[i]==0)++rez;
rez += (cnt[v[i]]==0?0:cnt[v[i]] - 1);
}
for (int i = b + 2; i <= n; ++i) {
in >> v[i];
v[i] = (v[i] + ant) % k;
ant = v[i];
cnt[v[i-b-2]]--;
cnt[v[i-a]]++;
if (v[i]==0)++rez;
rez += (cnt[v[i]]==0?0:cnt[v[i]] - 1);
}
out << rez;
}