Cod sursa(job #790932)

Utilizator adascaluAlexandru Dascalu adascalu Data 22 septembrie 2012 17:25:03
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 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=-2000000000,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=0;
	for(i=1;i<=n;i++)
	{
		if(bestsum<best[i]-best[minpoz])
			bestsum=best[i]-best[minpoz],x=minpoz+1,y=i;
		if(best[i]<best[minpoz])
			minpoz=i;
		
	}
	fprintf(g,"%ld %ld %ld",bestsum,x,y);
	fclose(f);
	fclose(g);
	return 0;
}