Pagini recente » Cod sursa (job #2959758) | Cod sursa (job #1461026) | Cod sursa (job #1221827) | Profil mihnea.anghel | Cod sursa (job #1775710)
#include <fstream>
using namespace std;
int N,K,A,B;
int a[500001];
int rmod[500001];
int rest[100001];
inline void Mod(int& a) {
if (a >= K) a-= K;
}
int main()
{
ifstream fin("divk.in");
ofstream fout("divk.out");
fin >> N >> K >> A >> B;
for (int i = 1; i <= N; i++)
fin >> a[i];
rmod[N] = a[N] % K;
for (int j = N-1; j >= 1; j--)
rmod[j] = (a[j] + rmod[j+1]) % K;
int Sol = 0;
int L = N,R = N;
rest[rmod[N]]++;
if (rmod[N-A+1] == 0) Sol++;
rest[0]++;
for (int i = N - A; i >= 1; i--) {
if (i < N - B + 1) {
rest[rmod[R]]--;
R--;
}
else if (rmod[i] == 0)
Sol++;
Sol += rest[rmod[i]];
L--;
rest[rmod[L]]++;
}
fout << Sol;
}