Cod sursa(job #861902)

Utilizator mucalmicmarcel almic mucalmic Data 21 ianuarie 2013 23:36:27
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>

using namespace std;


int main() {


int tst, n, i, j, k, m, l, xmin, arest, maxv, imin, imax, jmax, smax;
vector <int> vec, vmax, sum;
//int mat[17][17];

FILE *fin, *fout;

fin = fopen ("ssm.in", "r");

fscanf (fin, "%d", &n);
//printf ("%d\n", n);
vec.resize(n, 0);
xmin = 0;
imin = -1;
sum.resize(n,0);
smax = 0;


fscanf (fin, "%d", &vec[0]);


sum[0] = vec[0];
smax = sum[0] - xmin;
imax = 0;
jmax = imin+1;

if (vec[0] < xmin) {
	xmin = vec[0];
	imin = 0;
}

for (i = 1; i <n; i++) {
	fscanf (fin, "%d", &vec[i]);
	sum[i] = sum[i-1] + vec[i];
	
	//printf ("%d %d\n", sum[i], xmin);
	
	if (smax < sum[i] - xmin) {
		smax = sum[i] - xmin;
		imax = i;
		jmax = imin+1;
	}

	if (sum[i] < xmin) {
		xmin = sum[i];
		imin = i;
	}
	
}

fclose(fin);
fout = fopen("ssm.out", "w");

fprintf (fout, "%d %d %d\n", smax, jmax+1, imax+1);

fclose(fout);

return 0;

}