Pagini recente » Cod sursa (job #2300716) | Cod sursa (job #3320442) | Cod sursa (job #2310104) | Cod sursa (job #3341890) | Cod sursa (job #3314772)
#include <iostream>
#include <fstream>
#include <cstring>
#define int long long
using namespace std;
ifstream fin ("divk.in");
ofstream fout ("divk.out");
const int NMAX = 500000;
const int KMAX = 100000;
int v[NMAX + 5];
int sp[NMAX + 5];
int fr[KMAX + 5];
signed main()
{
int n,k,a,b;
fin>>n>>k>>a>>b;
if(b<a)
swap(a,b);
int ans = 0;
for(int i=1;i<=n;i++)
{
fin>>v[i];
sp[i] = (sp[i-1] + v[i]) % k;
}
for(int i=a;i<=n;i++)
{
fr[sp[i-a]]++;
if(i>b)
fr[sp[i-b-1]]--;
ans+=fr[sp[i]];
}
fout<<ans;
return 0;
}