Pagini recente » Cod sursa (job #1085753) | Cod sursa (job #985061) | Cod sursa (job #1165849) | Cod sursa (job #453820) | Cod sursa (job #2954747)
#include <fstream>
#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];
}
/*
int sumaMaxima=0;
int indiceIntial;
int indiceFinal;
for(int i=1;i<=n;i++){//O(n^2)
int sumaCurenta=0;
for(int j=i;j<=n;j++){
sumaCurenta+=v[j];
if(sumaCurenta>sumaMaxima){
sumaMaxima=sumaCurenta;
indiceIntial=i;
indiceFinal=j;
}
}
}
cout<<sumaMaxima<<" "<<indiceIntial<<" "<<indiceFinal<<" ";
*/
int sumaCurenta=0;
int sumaMaxima=0;
int indiceIntial2=1;
int indiceIntial;
int indiceFinal;
for(int i=1;i<=n;i++){
sumaCurenta+=v[i];
if(sumaCurenta<0){
sumaCurenta=0;
indiceIntial2=i+1;
}
if(sumaCurenta>sumaMaxima){
sumaMaxima=sumaCurenta;
indiceFinal=i;
indiceIntial=indiceIntial2;
}
}
cout<<sumaMaxima<<" "<<indiceIntial<<" "<<indiceFinal;
return 0;
}