Cod sursa(job #3326371)

Utilizator alexia._.fFlorete Alexia alexia._.f Data 28 noiembrie 2025 13:49:59
Problema Subsecventa de suma maxima Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAX(a, b) (((a) > (b)) ? (a) : (b))

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

	int n, best_left = 0, best_right = 0, left = 0, right = 0;
	
	fscanf(fin, "%d", &n);
	int *s = malloc(n * sizeof(int));
	for(int i = 0; i < n; i++)
	{
		fscanf(fin, "%d", &s[i]);
	}

	int suma_curenta = 0, suma_maxima = s[0];
    
	for(int i = 0; i < n; i++)
	{
		suma_curenta += s[i];
		if(suma_curenta > suma_maxima)
		{
			suma_maxima = suma_curenta;
			best_left = left;
			best_right = i;
		}
		if(suma_curenta < 0)
		{
			suma_curenta = 0;
			left = i + 1;
		}
	}

	fprintf(fout, "%d %d %d", suma_maxima, best_left + 1, best_right + 1);
    fclose(fin);
	fclose(fout);
	free(s);
	return 0;
}