Cod sursa(job #2049984)
| Utilizator | Data | 27 octombrie 2017 21:28:58 | |
|---|---|---|---|
| Problema | Divk | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
int N, K, A, B;
int SumRem[500001];
int Count[500001];
long long Ans = 0;
int main() {
f >> N >> K >> A >> B;
for (int i = 1; i <= N; i++) {
f >> SumRem[i];
SumRem[i] += SumRem[i - 1];
SumRem[i] %= K;
if (A <= i)
Count[SumRem[i - A]]++;
if (B < i)
Count[SumRem[i - B - 1]]--;
Ans += Count[SumRem[i]]; }
g << Ans; }
