Pagini recente » Cod sursa (job #1912018) | Cod sursa (job #684168) | Cod sursa (job #1627191) | Cod sursa (job #2294709) | Cod sursa (job #1071706)
#include <iostream>
#include <fstream>
using namespace std;
int N,A,B,K;
long long V[500002],nr[100002];
ifstream in("divk.in");
ofstream out("divk.out");
void read()
{
in>>N>>K>>A>>B;
for(int i=1;i<=N;i++)
{
in>>V[i];
V[i]=(V[i]+V[i-1])%K;
}
}
long long solve(int x)
{
long long res=0;
for(int i=0;i<K;i++)
nr[i]=0;
nr[0]=1;
for(int i=1;i<=N;i++)
{
if(nr[V[i]]>0) res=res+nr[V[i]];
nr[V[i]]++;
if(i-x>=0) nr[V[i-x]]--;
}
return res;
}
int main()
{
read();
out<<solve(B)-solve(A-1);
return 0;
}