Cod sursa(job #1496467)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 5 octombrie 2015 00:06:14
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

int main ()
{
    int n;
    ifstream fin("ssm.in"); 
    ofstream fout("ssm.out"); 
    fin>>n;
    vector<int> v(n);

    for(int i=0;i<n;i++)
    {
        fin>>v[i];          
    } 
    int start = 0;
    int stop = 0; 
    int sum = 0;
    int max = -2000000000;
    int max_start = 0;
    int max_stop = 0;

    for(int i=0;i<n;i++)
    {
        if(sum>=0)
        {
            sum += v[i];
            stop = i;
        }
        else
        {
            start=stop=i;
            sum = v[i];
        }
        if(sum>max)
        {
            max=sum;
            max_start = start;
            max_stop = stop;
        }
    }
    fout<<max<<" "<<max_start+1<<" "<<max_stop+1;
    
    return 0;
}