Pagini recente » Cod sursa (job #261076) | Cod sursa (job #1212856) | Cod sursa (job #2045779) | Cod sursa (job #1738563) | Cod sursa (job #481837)
Cod sursa(job #481837)
#include<fstream>
#include<vector>
#include<algorithm>
#define dmax 500003
#define nmax 100003
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
long long sol;
int n,a,b,k,s[dmax],v,r;
vector<int>h[nmax];
vector<int>::iterator it,ir;
int main()
{ int i;
in>>n>>k>>a>>b;
h[0].push_back(0);
for(i=1;i<=n;i++)
{ in>>v;
s[i]=(s[i-1]+v)%k;
r=s[i]%k;
h[r].push_back(i);
}
in.close();
for(i=1;i<=n;i++)
{ r=s[i]%k;
if(!h[r].empty() )
{
it=lower_bound(h[r].begin(),h[r].end(), i-b);
ir=lower_bound(h[r].begin(),h[r].end(), i-a+1);
sol+=(ir-it);
}
}
out<<sol;
out.close();
return 0;
}