Pagini recente » Cod sursa (job #2628181) | Cod sursa (job #1245285) | Cod sursa (job #834874) | Cod sursa (job #1148437) | Cod sursa (job #641034)
Cod sursa(job #641034)
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
#define maxN 500005
#define maxK 100005
int v[maxN], nr_rest[maxK], 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]]) -- nr_rest[v[i - B - 1]];
ans += nr_rest[v[i]];
}
}
g << ans;
return 0;
}