Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #1944840) | Cod sursa (job #2076650) | Cod sursa (job #1565897)
#include <fstream>
#define ValN 500005
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int K, N, A, B;
int i, v[ValN];
int x[ValN];
long long nr;
int main()
{
fin >> N >> K >> A >> B;
for (i=1; i<=N; i++)
{
fin >> v[i];
v[i]+=v[i-1];
v[i]%=K;
}
for (i=A; i<=N; i++)
{
x[v[i-A]]++;
nr+=x[v[i]];
if (i>=B)
x[v[i-B]]--;
}
fout << nr;
fin.close();
fout.close();
return 0;
}