#include <stdio.h>
#define MIN_INT -32768
int largest_contiguous_sum(int *array, int size) {
int max = MIN_INT;
int current_max = MIN_INT;
for (int i = 0; i < size; i++) {
current_max = current_max + array[i] > array[i] ? current_max + array[i] : array[i];
max = max > current_max ? max : current_max;
}
return max;
}
int main() {
int myridium_array[] = {5,5,5,-1,-1,5,5,5};
int size = 8;
printf("The largest sub-array sum is: %d\n", largest_contiguous_sum
(myridium_array
, size
)); }
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE1JTl9JTlQgLTMyNzY4CgppbnQgbGFyZ2VzdF9jb250aWd1b3VzX3N1bShpbnQgKmFycmF5LCBpbnQgc2l6ZSkgewoJaW50IG1heCA9IE1JTl9JTlQ7CglpbnQgY3VycmVudF9tYXggPSBNSU5fSU5UOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKCQljdXJyZW50X21heCA9IGN1cnJlbnRfbWF4ICsgYXJyYXlbaV0gPiBhcnJheVtpXSA/IGN1cnJlbnRfbWF4ICsgYXJyYXlbaV0gOiBhcnJheVtpXTsKCQltYXggPSBtYXggPiBjdXJyZW50X21heCA/IG1heCA6IGN1cnJlbnRfbWF4OwoJfQoJcmV0dXJuIG1heDsKfQoKaW50IG1haW4oKSB7CglpbnQgbXlyaWRpdW1fYXJyYXlbXSA9IHs1LDUsNSwtMSwtMSw1LDUsNX07CglpbnQgc2l6ZSA9IDg7CglwcmludGYoIlRoZSBsYXJnZXN0IHN1Yi1hcnJheSBzdW0gaXM6ICVkXG4iLCBsYXJnZXN0X2NvbnRpZ3VvdXNfc3VtKG15cmlkaXVtX2FycmF5LCBzaXplKSk7Cn0K