Cod sursa(job #1760494)

Utilizator AhileGigel Frone Ahile Data 20 septembrie 2016 21:11:22
Problema Subsecventa de suma maxima Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include<bits/stdc++.h>
using namespace std;
#define in f
#define out g

ifstream f("ssm.in");
ofstream g("ssm.out");

long n;
long v[6000010];
long sum;
long maxx;
long start = 1;
long fin;

int main() {

    in >> n;
    for(int i = 1; i <= n; i++) {
        in >> v[i];
    }
    for(int i = 1; i <= n; i++) {
        if(sum + v[i] > 0) {
            sum = sum + v[i];
        } else {
            if(sum == maxx) {
                start = i + 1;
            }
            sum = 0;
        }
        if(sum > maxx) {
            fin = i;
        }
        maxx = max(maxx, sum);
    }
    /*if(maxx == 0) {
        maxx = v[1];
        for(int i = 1; i <= n; i++) {
            if(maxx <= v[i]) {
                start = i;
                fin = i;
            }
            maxx = max(maxx, v[i]);
        }
    }*/
    out << maxx << " " << start << " " << fin;
}