Cod sursa(job #2029899)

Utilizator marvelousMarvelous marvelous Data 30 septembrie 2017 17:06:39
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
///ssm folosind smenul lui mars
///calculez sume partiale si suma maxima e data de s[i]-min(s[j-1])
#include <bits/stdc++.h>

using namespace std;

ifstream F("ssm.in");
ofstream G("ssm.out");

int n, x, L, R, mI;
long long s[6000005], bestans, best, Min;

int main()
{
    F >> n;
    for(int i = 1; i <= n; ++ i) F >> x, s[i]=s[i-1]+x;
    bestans=-1<<31;
    for(int i = 1; i <= n; ++ i)
    {
        best=s[i]-Min;
        if(s[i]<Min) Min=s[i], mI=i;
        if(bestans<best) bestans=best, L=mI+1, R=i;
    }
    if(L > R) L = R;
    G << bestans << " " << L << " " << R;
    return 0;
}