Cod sursa(job #277901)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 11 martie 2009 23:01:07
Problema Divk Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>

int nr=0,v[500100],s,n,k,i,j,suma=0,a,b,x;

int main()
{
 freopen("divk.in","r",stdin);
 freopen("divk.out","w",stdout);

 scanf("%d %d %d %d",&n,&k,&a,&b);
 for (i=1;i<=n;++i)
      {
       scanf("%d", &s);
       v[i]=s;
      }

 for (i=1;i<n;++i)
 {
  suma=x=0;
  for (j=i;j<=n;++j)
  {
     suma+=v[j];
     x++;
     if (suma%k==0 && x>=a && x<=b)
	 nr++;
	 else
	 if (x>b) break;
  }
 }


 /*for (i=1;i<=n;++i)
     {
      for (j=i-b;j<=i-a+1;++j)
	   v[j%k]++;
      q[v[i-b+1]%k]--;
      q[v[i-a+2]%k]++;
     }
 for (i=1;i<=n;++i)
      nr+=q[v[i]%k];
 */
 printf("%d", nr);
 return 0;
}