Cod sursa(job #473907)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 1 august 2010 15:08:40
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>

FILE*f=fopen("divk.in","r");
FILE*g=fopen("divk.out","w");

int n,k,a,b,s[500100],v[100100] ;
int  i , x ;
long long ss ;

int main () {
	
	fscanf ( f , "%d %d %d %d" , &n , &k , &a , &b ) ;
	
	for ( i = 1 ; i <= n ; ++i ) {
		
		fscanf ( f , "%d" , &x ) ;
		
		s[ i ] = ( s[ i - 1 ] + x ) % k ;
		
		if ( i - b - 1 >= 0 )
			--v[ s[ i - b - 1 ] ] ;
		
		if ( i - a >= 0 )
			++v[ s[ i - a ] ] ;
		
		ss += v[ s[ i ] ] ; 
		
	}
	
	fprintf ( g , "%lld" , ss ) ;
	
	
	
	fclose(f);
	fclose(g);
	
	return 0; 
	
}