Cod sursa(job #543558)

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

int main(void){
	register int i;
	
	int smax=INT_MIN,p,u,pa;
	f>>n;
	int x;
	f>>x;
	s[1]=x;
	pa=1;
	for(i=2;i<=n;i++){
		f>>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;
		}
	}
	f.close();
	
	fprintf(g,"%d %d %d",smax,p,u);
	fclose(g);
	return 0;
}