Cod sursa(job #642035)

Utilizator beldeabogdanBogdan Beldea beldeabogdan Data 30 noiembrie 2011 14:37:10
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
struct suma {
	long long st,sf,max;
};
suma m,c;
int v,i,n;
int main() {
	f>>n;
	m.max=-2000000000000ll;
	c.st=1;
	for (i=1;i<=n;i++) {
		f>>v;
		if (c.max+v>v) {
			c.max=c.max+v;
			c.sf=i;
		}
		else {
			c.max=v;
			c.st=i;
			c.sf=i;
		}
		if (c.max>m.max) m=c;
		else if (c.max==m.max && m.sf-m.st>c.sf-c.st) m=c;
	}
	g<<m.max<<" "<<m.st<<" "<<m.sf;
	return 0;
}