Cod sursa(job #1375409)

Utilizator radarobertRada Robert Gabriel radarobert Data 5 martie 2015 13:12:07
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <cstdio>

using namespace std;

const int INF = 0x3f3f3f3f;

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

    int n;
    fscanf(in, "%d", &n);

    int s = 0, smax = -1 * INF, start = 1;
    int smax_start, smax_finish;
    for (int x, i = 1; i <= n; i++)
    {
        fscanf(in, "%d", &x);
        if (s < 0)
        {
            s = 0;
            start = i;
        }
        s += x;
        if (s > smax)
        {
            smax = s;
            smax_start = start;
            smax_finish = i;
        }
    }

    fprintf(out, "%d %d %d\n", smax, smax_start, smax_finish);

    return 0;
}