Cod sursa(job #3165265)

Utilizator Bogdan345Marius Mihalache Bogdan345 Data 5 noiembrie 2023 18:56:58
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <vector>
using namespace std;
ifstream cin ("ssm.in");
ofstream cout("ssm.out");
vector<int>v;
int main()
{
int n;
cin>>n;
v.resize(n+1);
for(int i=1;i<=n;i++){
    cin>>v[i];
}
bool ok=true;
int inceputI=1;
int sfarsitF=1;
int inceputF=1;
int maxx=-1;
long long s=0;
for(int i=1;i<=n;i++){
  s+=v[i];
  if(s>=0){
    ok=false;
    if(s>maxx){
        maxx=s;
        sfarsitF=i;
        inceputF=inceputI;
    }
  }else{
    s=0;
    inceputI=i+1;
  }
}
if(!ok){
cout<<maxx<<" "<<inceputF<<" "<<sfarsitF<<" ";
}else{
int x=v[1];
int indice=-1;
for(int i=2;i<=n;i++){
    if(v[i]>x){
        x=v[i];
        indice=i;
    }
}
cout<<x<<" "<<indice<<" "<<indice<<" ";
}
}