Cod sursa(job #1527249)

Utilizator CraiuAndrei Craiu Craiu Data 17 noiembrie 2015 22:37:53
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
#define nmax 50005

using namespace std;

ifstream fin("secv2.in");
ofstream fout("secv2.out");

int n, k;
int v[nmax], a[nmax], b[nmax];

int main()
{
    int i, st, dr;
    long long smax;
    fin >> n >> k;
    smax = -999999999999;
    for(i = 1; i <= n; i++)
        fin >> v[i];
    for(i = 1; i <= n; i++)
    {
        a[i] = a[i - 1] + v[i];
        if(a[i] > smax)
        {
            smax = a[i];
            dr = i;
        }
    }
    smax = -999999999999;
    for(i = dr; i >= 1; i--)
    {
        b[i] = b[i + 1] + v[i];
        if(b[i] >= smax)
        {
            smax = b[i];
            st = i;
        }
    }
    if(n == k) fout<< "1 " << n << a[n];
    else fout<<st<<" "<<dr<<" "<<smax;
    fout.close();
    return 0;
}