Cod sursa(job #790900)

Utilizator adascaluAlexandru Dascalu adascalu Data 22 septembrie 2012 16:46:03
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
using namespace std;
#include<vector>
#include<queue>
#include<cstdio>
#define nmax 6000003
int main ()
{
	vector<int>v(nmax),best(nmax);
	long int n,i,bestsum,x,y,s,min,minpoz,secvpoz;
	FILE *f=fopen("ssm.in","r");
	FILE *g=fopen("ssm.out","w");
	fscanf(f,"%ld",&n);
	best[0]=0;
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&v[i]),best[i]=v[i]+best[i-1];
	minpoz=1,bestsum=best[1];
	for(i=2;i<=n;i++)
	{
		if(best[i]<best[i]+best[minpoz])
			best[i]=best[i]+best[minpoz];
		if(best[i]<best[minpoz])
			minpoz=i;
		if(best[i]>bestsum)
			bestsum=best[i],x=minpoz,y=i;
	}
	fprintf(g,"%ld %ld %ld",bestsum,x,y);
	fclose(f);
	fclose(g);
	return 0;
}