Cod sursa(job #1423964)

Utilizator SwagginInMyJaysaaaaaaaaaaaas SwagginInMyJays Data 23 aprilie 2015 00:31:52
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <cstdio>
#include <fstream>
#include <cstdlib>
#include <utility>
#include <algorithm>
#include <bitset>
#include <vector>
#include <map>
#include <queue>
#include <string>
#include <cstring>


#define ll long long
#define llu unsigned long long
#define rep(i, a, b) for (int i = (a) ; i <= (b) ; ++i)

#define mp make_pair
#define pii pair <int, int>
#define SORT(x) sort ((x).begin(), (x).end() )
#define fi first

using namespace std;

vector <int> x;

static const int inf = 2e8;

int main(){
    ifstream fin ("ssm.in");
    ofstream fout ("ssm.out");
    int N, best, start, end, cc, sum;
    best = -inf, start = end = cc = sum = 0 ;
    fin >> N;
    x.resize(N);
    for (auto &i : x) fin >> i;
    rep (i, 0, N - 1 ) {
        if (sum < 0 )
            cc = i, sum = x[i];
            else sum += x[i];
        if (sum > best) best = sum, start = cc, end = i;
    }
    fout << best << " " << start + 1 << " " << end + 1;
return 0;
}