Pagini recente » Cod sursa (job #1535950) | Cod sursa (job #953347) | Cod sursa (job #1839306) | Cod sursa (job #1346814) | Cod sursa (job #551645)
Cod sursa(job #551645)
//rezolvare O(n) - 100p
#include<cstdio>
#define infile "divk.in"
#define outfile "divk.out"
#define L 500005
using namespace std;
void rezolva();
void afiseaza();
int n;
int s[L],v[L];
long long sol=0;
int k,a,b;
void rezolva()
{
freopen(infile,"r",stdin);
int x;
scanf("%d",&n);
scanf("%d%d%d",&k,&a,&b);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
s[i]=(s[i-1]+x)%k;
if(i-b-1>=0)
--v[s[i-b-1]];
if(i-a>=0)
++v[s[i-a]];
sol+=v[s[i]];
}
fclose(stdin);
}
void afiseaza()
{
freopen(outfile,"w",stdout);
printf("%lld",sol);
fclose(stdout);
}
int main()
{
rezolva();
afiseaza();
return 0;
}