Pagini recente » Cod sursa (job #1760541) | Cod sursa (job #3213110) | Cod sursa (job #2405120) | Cod sursa (job #219626) | Cod sursa (job #641037)
Cod sursa(job #641037)
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
#define maxN 500005
#define maxK 100005
#define LL long long
int v[maxN], nr_rest[maxK];
LL ans;
int main()
{
ifstream f ("divk.in");
ofstream g ("divk.out");
int N, K, A, B;
f >> N >> K >> A >> B;
for (int i = 1; i <= N; ++ i)
{
int c;
f >> c;
v[i] = (v[i - 1] + c) % K;
if (i >= A)
{
++ nr_rest[v[i - A]];
if (i - B - 1 >= 0) -- nr_rest[v[i - B - 1]];
ans += (LL) nr_rest[v[i]];
}
}
g << ans;
return 0;
}