Cod sursa(job #3279950)

Utilizator LucaMirsolea14Luca Mirsolea LucaMirsolea14 Data 24 februarie 2025 20:41:31
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream>
#include<climits>
//#define int long long
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int32_t main(){

int n,v[6000002],i,j,maxi=INT_MIN,pozm;

fin>>n;

for(i=1;i<=n;i++){
    fin>>v[i];
    if(maxi<v[i]){
        maxi=v[i];
        pozm=i;
    }
}

if(maxi<=0){
    fout<<maxi<<" "<<pozm<<" "<<pozm;
    return 0;
}

int s=0,smax=0,st=-1,dr,stt,drr;

for(i=1;i<=n;i++){

    s+=v[i];

    if(s>=0){
       dr=i;
       if(st==-1)
        st=i;
    }
    else{
       st=-1;
       s=0;
    }

    if(smax==s){
        if(st==stt){
            if(dr<drr)
                drr=dr;
        }
    }
   if(smax<s){
    smax=s;
    stt=st;
    drr=dr;
   }
}

fout<<smax<<" " <<stt<<" "<<drr;

}