Cod sursa(job #1125760)

Utilizator RazvanR104Razvan-Andrei Ciocoiu RazvanR104 Data 26 februarie 2014 19:20:05
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, S = 0, i0, in = -1, sf = 0, SMAX = -(1LL << 31), inp = 1, val;

    scanf("%d", &N);

	for (i0 = 1; i0 <= N; ++i0)
    {
        scanf("%d", &val);
        if (S < 0)
        {
            S = val;
            inp = i0;
            if (SMAX < S || (SMAX == S && sf - in > 0))
            {
                SMAX = S;
                in = sf = i0;
            }
        }
        else
        {
            S += val;
            if (SMAX < S || (SMAX == S && sf - in > 0))
            {
                SMAX = S;
                in = inp;
                sf = i0;
            }
        }
    }

    printf("%d %d %d\n", SMAX, in, sf);
	fclose(stdout);
    return 0;
}