Cod sursa(job #481963)

Utilizator marius21Marius Petcu marius21 Data 2 septembrie 2010 09:50:30
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
#include <cstdlib>
#include <limits.h>

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

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