Cod sursa(job #2614992)

Utilizator Cristian25Cristian Stanciu Cristian25 Data 13 mai 2020 01:10:29
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

const char inputFile[] = "ssm.in";
const char outputFile[] = "ssm.out";

int main(void)
{
    ifstream in(inputFile);
    unsigned N, st, dr;
    in >> N;
    vector<int> v(N);
    int smax, cmax;
    smax = -0x3f3f3f3f;
    cmax = 0;
    for(unsigned i = 0; i < N; ++i)
    {
        in >> v[i];
        if(cmax + v[i] > 0)
            cmax = cmax + v[i];
        else{
            st = i + 1;
            cmax = 0;
        }
        if(cmax > smax && cmax)
        {
            smax = cmax;
            dr = i;
            continue;
        }
        if(v[i] > smax)
        {
            smax = v[i];
            st = dr = i;
        }
    }
    if(st == N)
        st = dr;
    ofstream out(outputFile);
    out << smax << ' ' << st + 1 << ' ' << dr + 1;
    return 0;
}