Cod sursa(job #1083614)

Utilizator SeekHunt1334Septimiu Bodica SeekHunt1334 Data 16 ianuarie 2014 09:28:55
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <climits>
using namespace std;

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

int n;
int smax = INT_MIN, s;
int st, dr;
vector<int> v;

void Read();
void Din();

int main()
{
    Read();
    Din();

    fout << smax << ' ' << st << ' ' << dr << '\n';

    fin.close();
    fout.close();
    return 0;
}

void Din()
{
    int li;

    for (int i = 1; i <= n; ++i)
    {
        if ( s < 0 )
        {
            s = v[i];
            li = i;
        }
        else s += v[i];

        if ( smax < s )
        {
            smax = s;
            st = li;
            dr = i;
        }
    }

}

void Read()
{
    fin >> n; v.resize(n+2);

    for (int i = 1; i <= n; ++i)
        fin >> v[i];
}