Pagini recente » Cod sursa (job #3249168) | Cod sursa (job #687487) | Cod sursa (job #734788) | Cod sursa (job #534308) | Cod sursa (job #1616989)
#include<fstream>
#define NRME 500001 // numarul maxim de elemente
#define NRMR 100001 // numarul maxim de resturi
using namespace std;
FILE*in;
ofstream out("divk.out");
long int N;
long int K;
long int A, B;
long int X;
long long nr_subsecvente;
int nr[NRMR];
int S[NRME];
void read()
{
in=fopen("divk.in", "r");
fscanf(in, "%ld%ld%ld%ld", &N, &K, &A, &B);
for (int i=1; i<=N; i++)
{
fscanf(in, "%ld", &X);
S[i]=S[i-1]+X;
S[i]%=K;
if (i >= A)
++nr[S[i-A]];
if (i > B)
--nr[S[i-B-1]];
nr_subsecvente+=nr[S[i]];
}
}
void show()
{
out<<nr_subsecvente;
}
int main()
{
read();
show();
return 0;
}