Cod sursa(job #1255755)

Utilizator robx12lnLinca Robert robx12ln Data 5 noiembrie 2014 08:39:33
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include<fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int v[6000002],i,j,p,u,n,u1,p1;
long long maxim,s;
int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>v[i];
    }
    maxim=-2000000000000000000;
    s=v[1];
    if(maxim<s){
        maxim=s;
    }
    p=1;
    u=1;
    for(i=2;i<=n;i++){
        if(s+v[i]>v[i]){
            s+=v[i];
        }else{
            s=v[i];
            p1=i;
            u1=i;
        }
        if(maxim<s){
            maxim=s;
            p=p1;
            u=u1;
        }
        else{
            if(maxim==s){
                if(u-p+1>u1-p1+1){
                    u=u1;
                    p=p1;
                }
            }
        }
        u1++;
    }
    fout<<maxim<<" "<<p<<" "<<u<<"\n";
    return 0;
}