Cod sursa(job #1727400)
Utilizator | Data | 10 iulie 2016 18:25:42 | |
---|---|---|---|
Problema | Divk | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int n, k, a, b, x;
long long sum[500005], v[500005], sol;
int main()
{
int i;
fin >> n >> k >> a >> b;
for(i = 1; i <= n; i++)
{
fin >> x;
v[i] = (v[i - 1] + a) % k; /// sume partiale
if(i >= a)
sum[v[i - a]]++;
if(i > b)
sum[v[i - b]]--;
sol += (1LL * sum[v[i]]);
}
fout << sol << "\n";
return 0;
}