Cod sursa(job #482898)
Utilizator | Data | 5 septembrie 2010 22:17:45 | |
---|---|---|---|
Problema | Divk | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <cstdio>
#include <fstream>
#define maxn 500010
using namespace std;
ifstream fin ("divk.in");
ofstream fout ("divk.out");
int N, K, a, b, A[maxn], px, py, i, j;
long long sol;
long S[maxn];
int main ()
{
fin >> N >> K >> a >> b;
for (i = 1; i <= N; i++) {
fin >> A[i];
S[i] = S[i - 1] + A[i];
}
for (i = 1; i <= N; i++) {
px = i + a - 1;
py = i + b - 1;
for (j = px; j <= py && j <= N; j++)
if ((S[j] - S[i - 1]) % K == 0)
++sol;
}
fout << sol <<"\n";
return 0;
}