Cod sursa(job #3263476)

Utilizator BeilandArnoldArnold Beiland BeilandArnold Data 14 decembrie 2024 14:20:59
Problema Subsecventa de suma maxima Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#include <limits.h>

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


	int n;
	fscanf(input, "%d ", &n);
	int arr[n];
	for(int i = 0; i < n; i++) {
		fscanf(input, "%d ", &arr[i]);
	}

	int max = INT_MIN, maxstart = 0;
	int start = 0, end = 0;
	int sum = 0;

	for(int i = 0; i < n; i++) {
		if (sum < 0) {
			sum = arr[i];
			start = i;
		} else {
			sum += arr[i];
		}
		if (max < sum) {
			max = sum;
			maxstart = start;
			end = i;
		}
	}
	fprintf(output, "%d %d %d", max, maxstart+1, end+1);
}