Cod sursa(job #540313)

Utilizator slycerdan dragomir slycer Data 23 februarie 2011 21:21:17
Problema Subsecventa de suma maxima Scor 75
Compilator c Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>
int main() {

	FILE * out = fopen("ssm.out", "w");
	FILE * in = fopen("ssm.in", "r");
	
	int n; 
	fscanf(in,"%d",&n); 
	int i;
	int suma = 0; 
	int startIndice = -1; 
	int endIndice = -1; 
	int maxSuma = -1* (1<<16); 
	int maxStart = -1; 
	int maxEnd = -1; 
	for ( i=0; i<n; i++){
		int k; 
		fscanf(in,"%d ",&k);
		if ( k>k+suma ){
			suma = k; 
			startIndice = i; 
			endIndice = 0; 
		} else {
			suma=suma+k; 
			endIndice = i; 
		}
		if ( suma>maxSuma){
			maxSuma = suma; 
			maxStart = startIndice; 
			maxEnd = endIndice; 
		}
	}
	
	fprintf(out,"%d %d %d",maxSuma,maxStart+1,maxEnd+1);
	
	fclose(out);
	fclose(in);
}