Cod sursa(job #543554)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 28 februarie 2011 11:49:19
Problema Subsecventa de suma maxima Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>
#include <limits.h>
FILE *f=fopen("ssm.in","r");
FILE *g=fopen("ssm.out","w");
int n,s[6000001];

int main(void){
	register int i;
	
	int smax=INT_MIN,p,u,pa;
	fscanf(f,"%d",&n);
	int x;
	fscanf(f,"%d",&x);
	s[1]=x;
	pa=1;
	for(i=2;i<=n;i++){
		fscanf(f,"%d",&x);
		if(s[i-1]+x>x){
			s[i]=s[i-1]+x;
			if(s[i]>smax){
				smax=s[i];
				p=pa;
				u=i;
			}
			continue;
		}
		if(x>s[i-1]+x){
			s[i]=x;
			if(s[i]>smax){
				smax=s[i];
				p=i;
				u=i;
			}	
			pa=i;
		}
	}
	fclose(f);
	
	fprintf(g,"%d %d %d",smax,p,u);
	fclose(g);
	return 0;
}