Cod sursa(job #606746)

Utilizator CS-meStanca Marian Ciprian CS-me Data 9 august 2011 16:50:02
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
# include <stdio.h>
FILE *fin, *fout;
long long n, K, A, B, lung, sol, i, cit;
long long v[500010], ap[100010];
int main (){
	fin=fopen ("divk.in", "r", stdin);
	fout=fopen ("divk.out", "w", stdout);
	fscanf (fin,"%lld%lld%lld%lld", &n, &K, &A, &B);
	for (i = 1; i <= n; ++i){
		scanf ("%lld", &cit);
		v[i] = (v[i - 1] + cit) % K;
	}
	for (i = 1; i <= n; ++i){
		if (i - A >= 0)
	    	++ap[v[i - A]];
		if (i - B > 0){
			--ap[v[i - B - 1]];
		}
		sol = sol + ap[v[i]];
	}
	fprintf (fout, "%lld\n", sol);
	return 0;
}