Cod sursa(job #3195621)

Utilizator Warrior.exeZgorcea Mihai-Alexandru Warrior.exe Data 21 ianuarie 2024 13:13:07
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.13 kb
#include <iostream>
#include<fstream>
using namespace std;
//int sum[6000000];
int main()
{
ifstream cin("ssm.in");
ofstream cout("ssm.out");
bool toateneg=true;
int valnegmin=0,poz=0;
int nr,val,start=0,end,startmax=0,sfarmax=0;
long long suma=0,sumamax=0;
cin>>nr;
for(int i=0;i<nr;i++){
    cin>>val;
    if(val<=0&&toateneg==true){
        if(start==0){
            start=1;
            valnegmin=val;
            poz=i;
        }
        if(valnegmin<val){
            valnegmin=val;
            poz=i;
        }
    }
    if(suma+val>=0){
     suma+=val;
     if(val!=0){
        toateneg=false;
     }
     if(suma>sumamax){
        startmax=start;
        sfarmax=i;
        sumamax=suma;
     }
    }
    else{
            start=i+1;
            suma=0;
        if(suma==0){
            start=i+1;
        }
    }
//sum[i]=suma;
}
if(suma>sumamax){
    sfarmax=nr-1;
    sumamax=suma;
}
/*
for(int i=0;i<nr;i++){
    cout<<sum[i]<<" ";
}
cout<<'\n';
*/
if(toateneg==true){
cout<<valnegmin<<" "<<poz+1<<" "<<poz+1;
}
else{
cout<<sumamax<<" "<<startmax+1<<" "<<sfarmax+1;
}
    return 0;
}