Cod sursa(job #1456316)

Utilizator Theodor1000Cristea Theodor Stefan Theodor1000 Data 30 iunie 2015 12:17:57
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <cstdio>

using namespace std;

int main ()
{
    freopen ("ssm.in", "r", stdin);
    freopen ("ssm.out", "w", stdout);

    int n;
    scanf ("%d", &n);

    bool OK = false;
    int p1, p12 = 1, p2, sum = 0, ma = 0, ma2, pp = 1;

    for (int i = 1; i <= n; ++i)
    {
        int x;
        scanf ("%d", &x);
        if (x > 0) OK = true;

        if (i == 1) ma2 = x;
        else if (x > ma2) ma2 = x, pp = i;

        sum += x;
        if (ma < sum) ma = sum, p1 = p12, p2 = i;

        if (sum < 0) sum = 0, p12 = i + 1;
        else if (!sum) p12 = i;
    }

    if (!OK)
    {
        printf ("%d ", ma2);
        printf ("%d ", pp);
        printf ("%d\n", pp);

        return 0;
    }

    printf ("%d ", ma);
    printf ("%d ", p1);
    printf ("%d\n", p2);

    return 0;
}