Pagini recente » Cod sursa (job #808730) | Cod sursa (job #1991846) | Cod sursa (job #890768) | Cod sursa (job #558047) | Cod sursa (job #222642)
Cod sursa(job #222642)
#include <cstdio>
using namespace std;
FILE *in,*out;
long n,k,a,b,sum[500007],sir[500007],i,aux,contor,j,q;;
struct rest
{int nr,*fii;} div[100007];
int main()
{in=fopen("divk.in","r");
fscanf(in,"%d %d %d %d",&n,&k,&a,&b);
sum[0]=0; contor=0;
for(i=0;i<=k;i++) div[i].nr=0;
for(i=1;i<=n;i++)
{fscanf(in,"%d",&sir[i]);sum[i]=sum[i-1]+sir[i];
(div[sum[i]%k].nr)++;aux=div[sum[i]%k].nr;
div[sum[i]%k].fii[aux]=i;
}
for(i=0;i<=k;i++)
for(j=1;j<=div[i].nr;j++)
for(q=j;q<=div[i].nr;q++)
{if(a<(div[i].fii[k]-div[i].fii[j]+1)&&(div[i].fii[k]-div[i].fii[j]+1)<b) contor++; }
out=fopen("divk.out","w");
fprintf(out,"%d",contor);
return 0;
}