Pagini recente » Cod sursa (job #3332647) | Cod sursa (job #2747338) | Cod sursa (job #3310859) | Cod sursa (job #200502) | Cod sursa (job #3314771)
#include <iostream>
#include <fstream>
#include <cstring>
#define int long long
#define NMAX 500000
#define KMAX 100000
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];
int 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;
}