Pagini recente » Cod sursa (job #2604189) | Cod sursa (job #2699595) | Cod sursa (job #1156834) | Cod sursa (job #1843580) | Cod sursa (job #1570002)
#include <bits/stdc++.h>
using namespace std;
int t[500005],n,k,a,b;
vector <int> h[100005];
inline void Input()
{
int i;
ifstream fin("divk.in");
fin>>n>>k>>a>>b;
for(i=1;i<=n;i++)
fin>>t[i];
fin.close();
}
inline long long Secv(int L)
{
int p,i,j;
long long sol=0;unsigned int lung;
for(p=0;p<k;p++)
{
i=0;
lung=h[p].size();
for(j=0;j<lung;j++)
{
while(h[p][j]-h[p][i]>L) i++;
sol+=(j-i+1);
}
}
return sol;
}
inline void Solve()
{
long long sol;
int i,s=0;
h[0].push_back(0);
for(i=1;i<=n;i++)
{
s=(s+t[i])%k;
h[s].push_back(i);
}
sol=Secv(b)-Secv(a-1);
ofstream fout("divk.out");
fout<<sol<<"\n";
fout.close();
}
int main()
{
Input();
Solve();
return 0;
}