Cod sursa(job #65559)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 10 iunie 2007 19:52:41
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include<stdio.h>
long int n,k,a,b,i,cit,v[100001],s[500001],sol,l,r;
int main()
{
	FILE *f,*g;
	f=fopen("divk.in","r");
	g=fopen("divk.out","w");
	fscanf(f,"%ld%ld%ld%ld",&n,&k,&a,&b);
	for(i=1;i<=n;i++)
	{ fscanf(f,"%ld",&cit);
	  s[i]=(s[i-1]+cit)%k;
	}
	l=a;r=b;
	for(i=l;i<=r;i++)
	if(i<=n)v[s[i]]++;
	for(i=1;i<=n;i++)
	{ if(l>n)break;
	  sol+=v[s[i-1]];
	  if(r<n)v[s[r+1]]++;
	  v[s[l]]--;
	  l++;r++;
	}
	fprintf(g,"%ld\n",sol);
	fcloseall();
	return 0;
}