Cod sursa(job #2909378)

Utilizator munceanMuncean Mihai-Rares muncean Data 13 iunie 2022 08:59:34
Problema Subsecventa de suma maxima Scor 85
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#pragma warning (disable : 4996)

#include <stdio.h>

int n, v[6000001], d[6000001], b, bi, e;

int max(int a, int b)
{
	if (a > b)
		return a;
	else
		return b;
}

void dinamic(int  i)
{
	d[i] = max(v[i], v[i] + d[i-1]);
	if (d[i] == v[i] && d[i-1]!=0)
		bi = i;
}

int main()
{
	int i, s=-6000000;

	FILE *f, *g;

	f = fopen("ssm.in", "rt");
	g = fopen("ssm.out", "wt");

	fscanf(f, "%d", &n);

	d[0] = 0;

	for (i = 1; i <= n; i++)
	{
		fscanf(f, "%d", &v[i]);
		dinamic(i);
		s = max(s, d[i]);
		if (s == d[i])
		{
			b = bi;
			e = i;
		}
	}

	fprintf(g, "%d %d %d", s, b, e);

	fclose(f);
	fclose(g);
	return 0;
}