Cod sursa(job #712381)
| Utilizator | Data | 13 martie 2012 13:12:03 | |
|---|---|---|---|
| Problema | Divk | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <fstream>
using namespace std;
ifstream fin ("divk.in");
ofstream fout ("divk.out");
int n, k, a, b, v[500010], r[500010], sum[500010], rez;
int main() {
int i;
fin >> n >> k >> a >> b;
for (i = 1; i <= n; ++i)
fin >> v[i];
for (i = 1; i <= n; ++i)
sum[i] = sum[i - 1] + v[i];
for (i = a; i <= n; ++i) {
++r[sum[i - a] % k];
if (i > b)
--r[sum[i - b - 1] % k];
rez += r[sum[i] % k];
}
fout << rez << "\n";
fout.close();
return 0;
}
