Pagini recente » Cod sursa (job #1460330) | Cod sursa (job #1873227) | Cod sursa (job #2695895) | Cod sursa (job #2979306) | Cod sursa (job #3182641)
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("avx,avx2,fma")
using namespace std;
#define fastIO ios_base::sync_with_stdio(NULL);cin.tie(NULL)
#define testCases int tc;cin>>tc;while(tc--)
#define ll long long
#define ld long double
#define sza(x) ((int)x.size())
#define all(a) (a).begin(),(a).end()
#define PI 3.1415926535897932384626433832795l
const int NMAX = 6 * 1e6 + 5;
int best [ NMAX ];
template<typename T> inline T gcd(T a, T b) {return (b?__gcd(a, b):a);}
template<typename T> inline T lcm(T a, T b) {return (a*(b/gcd(a, b)));}
static inline void solve();
int main ( int argc, char** argv )
{
// ( void )! freopen ( "ssm.in" , "r" , stdin );
// ( void )! freopen ( "ssm.out" , "w" , stdout );
fastIO;
solve();
return 0;
}
static inline void solve()
{
int n; cin >> n;
int start = 0, end = 0, maxim = -1e6 - 5;
for ( int i = 1; i <= n; ++ i )
{
cin >> best [ i ];
best [ i ] = max ( best [ i - 1 ] + best [ i ], best [ i ] );
if ( best [ i - 1 ] < 0 ) start = i;
if ( best [ i ] > maxim ) maxim = best [ i ], end = i;
}
cout << maxim << ' ' << start << ' ' << end;
}