Pagini recente » Cod sursa (job #2628091) | Cod sursa (job #235746) | Cod sursa (job #1965064) | Cod sursa (job #1962747) | Cod sursa (job #2023946)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("divk.in");
ofstream cout("divk.out");
struct fint
{
int x,i;
};
bool cmp(fint a,fint b)
{
return a.x<b.x;
}
fint v[500005];
int main()
{
ios_base::sync_with_stdio(0);
int n,k,a,b,x,s=0,st=1,dr;
long long sum=0;
cin>>n>>k>>a>>b;
for(int i=1;i<=n;i++)
{
cin>>x;
s=(s+x)%k;
v[i].x=s;
v[i].i=i;
}
sort(v+1,v+n+1,cmp);
v[n+1].x=-1;
for(int i=1;i<=n;i++)
if(v[i].x!=v[i+1].x)
{
dr=i;
for(int st2=st;st2<=dr;st2++)
for(int dr2=st2;dr2<=dr;dr2++)
{
int x=abs(v[st2].i-v[dr2].i);
if(a<=x and x<=b)
s++;
}
st=i+1;
}
int i=a;
while(v[i].x==0 and i<=b)
i++;
cout<<s+i-a;;
return 0;
}