Cod sursa(job #2856302)

Utilizator rapidu36Victor Manz rapidu36 Data 23 februarie 2022 17:53:57
Problema Subsecventa de suma maxima Scor 85
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>
#include <stdlib.h>
#define INF (1 << 30)

int main()
{
    FILE *in, *out;
    in = fopen("ssm.in", "r");
    out = fopen("ssm.out", "w");
    int n, sc = -INF, st, stmax, drmax, smax = -INF;
    fscanf(in, "%d", &n);
    for (int i = 1; i <= n; i++)
    {
        int x;
        fscanf(in, "%d", &x);
        if (x > sc + x)///sau if (sc < 0)
        {
            sc = x;
            st = i;
        }
        else
        {
            sc += x;
        }

        if (sc > smax)
        {
            smax = sc;
            stmax = st;
            drmax = i;
        }
    }
    fprintf(out, "%d %d %d", smax, stmax, drmax);
    fclose(in);
    fclose(out);
    return 0;
}