Pagini recente » Cod sursa (job #2627887) | Cod sursa (job #2630452) | Cod sursa (job #2287311) | Cod sursa (job #1829737) | Cod sursa (job #2890240)
/*
Problema Subsecventa de suma maima
Platforma: Infoarena
*/
#include<bits/stdc++.h>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int main(){
int n,i,a,left,right;
int ans = INT_MIN;
vector<int> v,sp,mp;
f>>n;
v.push_back(0); //for starting from 1 index
sp.push_back(0);
mp.push_back(INT_MAX);
for(i=0;i<n;++i){
f >> a;
v.push_back(a);
}
for(i=1;i<v.size();++i){
sp.push_back( v[i] + sp[i-1] );
mp.push_back( min( mp[i-1], sp[i] ) );
}
for(i=1;i<v.size();++i){
if(sp[i]-mp[i-1]> ans){
ans = sp[i] - mp[i-1];
right = i;
}
}
g << ans << ' ';
for(i=right;i>0;--i){
if(ans>0){
ans -= v[i];
}
if(ans == 0){
left = i;
break;
}
}
g << left << ' ' << right;
return 0;
}