Pagini recente » Cod sursa (job #2313157) | Cod sursa (job #1972789) | Cod sursa (job #2152144) | Cod sursa (job #2728804) | Cod sursa (job #3182617)
#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;
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 a [ NMAX ], best [ NMAX ], start, end = 0;
for ( int i = 1; i <= n; ++ i )
cin >> a [ i ];
best [ 1 ] = a [ 1 ];
start = 1;
int maxim = -(int)(1e5);
for ( int i = 2; i <= n; ++ i )
{
best [ i ] = max ( best [ i - 1 ] + a [ i ], a [ i ] );
if ( best [ i ] == a [ i ] ) start = i;
if ( best [ i ] > maxim ) maxim = best [ i ], end = i;
}
cout << maxim << ' ' << start << ' ' << end;
}