Cod sursa(job #3287950)

Utilizator pacelaaaCiurea Pavel pacelaaa Data 20 martie 2025 01:18:28
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;

ifstream cin ( "ssm.in" );
ofstream cout ( "ssm.out" );

const int Nmax = 6e6 + 5;

int dp[Nmax], len[Nmax];

int main()
{
    int n, val, poz_max;
    cin >> n;

    cin >> dp[1];
    len[1] = 1;


    for( int i = 2; i <= n ; i ++ ) {
      cin >> val;
      if( dp[i-1] > 0 ) {
        len[i] = len[i - 1]+1;
        dp[i] = dp[i-1] + val;
      } else{
        dp[i] = val;
        len[i] = 1;
      }
    }

    for( int i = 1; i <= n; i ++ )
      if( dp[i] > dp[poz_max] )
        poz_max = i;

    cout << dp[poz_max] << " " << poz_max - len[poz_max] + 1 << " " << poz_max << '\n';
    return 0;
}