Cod sursa(job #481958)

Utilizator marius21Marius Petcu marius21 Data 2 septembrie 2010 09:35:51
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>
#include <cstdlib>

FILE *fin=fopen("ssm.in","r");
FILE *fout=fopen("ssm.out","w");

int main (int argc, char * const argv[]) {
	long long n;
    fscanf(fin, "%lld",&n);
	long long smin=0;
	long long psmin=-1;
	long long spart=0;
	long long max=-0x3f3f3f3f3f3f3f3f;
	long long pi=-1;
	long long pf=-1;
	
	for (long long i=0; i<n; i++)
	{
		long long v;
		fscanf(fin, "%lld", &v);
		spart+=v;
		if (spart<smin)
		{
			psmin=i;
			smin=spart;
		}
		if (spart-smin>max)
		{
			max=spart-smin;
			pi=psmin;
			pf=i;
		}
	}
	fprintf(fout, "%lld %lld %lld\n",max,pi+2,pf+1);
	fclose(fin);
	fclose(fout);
    return 0;
}