Pagini recente » Cod sursa (job #447105) | Cod sursa (job #468550) | Cod sursa (job #1465955) | Cod sursa (job #473210) | Cod sursa (job #2767520)
#include <iostream>
#include <fstream>
using namespace std;
int n, k, a, b, v[500005], sp[500005], nrs;
int fr[100001];
int main()
{
ifstream read("divk.in");
ofstream print("divk.out");
read >> n >> k >> a >> b;
for(int i = 1; i <= n; i++)
{
read >> v[i];
}
for(int i = 1;i <= n; i++)
{
sp[i] = (sp[i - 1] + v[i]) % k;
//cout << sp[i] << ' ';
if(sp[i] == 0 and i >= a and i <= b)
nrs++;
}
// cout<<endl<<"nrs = "<<nrs<<endl;
for(int i = a + 1; i <= n; i++)
{
fr[sp[i - a]]++;
if(i > b + 1)
fr[sp[i - b - 1]]--;
nrs += fr[sp[i]];
}
print << nrs;
return 0;
}