Cod sursa(job #65542)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 10 iunie 2007 18:02:15
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.46 kb
#include<stdio.h>
long int n,k,a,b,i,cit,v[100001],s[500001],sol;
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;
	}
	for(i=1;i<a;i++) v[s[i]]++;
	for(i=a;i<=b;i++) {sol+=v[s[i]];v[s[i]]++;}
	v[s[1]]--;
	for(i=b+1;i<=n ;i++) {sol+=v[s[i]];v[s[i]]++;v[i-b+1]--;}
	fprintf(g,"%ld\n",sol);
	fcloseall();
	return 0;
}