Cod sursa(job #178836)

Utilizator Andreid91Ciocan Andrei Andreid91 Data 15 aprilie 2008 11:18:56
Problema Divk Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include<fstream.h>

int main()
{
int nr=0,v[500001],p,u,n,i,j,k,a,b;
ifstream f("divk.in");
f>>n>>k>>a>>b;
for (i=1;i<=n;i++) {f>>v[i];v[i]%=k;}
f.close();
p=0;
for (i=1;i<=a;i++) p=(p+v[i])%k;
u=p;if (p==0) nr++;
for (i=a+1;i<=b;i++) {u=(u+v[i])%k; if (u==0) nr++;}
for (i=2;i<=n-a+1;i++)
	{
	p=p-v[i-1]+v[i+a-1];  if (p<0) p+=k;
	if (p%k==0) nr++;
	u=p;
	for (j=i+a;j<=i+b-1 && j<=n;j++)
		{u=(u+v[j])%k; if (!u) nr++;}
	}
ofstream g("divk.out");
g<<nr;g.close();
return 0;
}