Cod sursa(job #3228284)

Utilizator alessiahAlessia Harabagiu alessiah Data 7 mai 2024 11:25:45
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <fstream>

using namespace std;

ifstream fin("ssm.in");
ofstream fout("ssm.out");
int v[6000000];

int main()
{
    int n;
    int st=0;
    int S=0;
    int imx;
    int max_st;
    int max_dr;
    int max_sum=0;
    int ok;
    fin >> n;
    for (int i=0 ; i < n; i++){
         fin >> v[i];
        if(v[i]>=0) {
            ok=1;
        }
    }


    if(ok==0){
        int max_nr = -2000000000;
        for( int i=0; i<n;i++ ){
            if( v[i]>max_nr ) {
                max_nr=v[i];
                imx=i;
            }
        }
        fout<< max_nr  <<" "<<imx + 1<<" " <<imx + 1;
        return 0;
    }
    for(int dr=0; dr < n; dr++){
        S+=v[dr];
        if (S < 0){
           st=dr+1;
           S=0;
        }
        if (S > max_sum){
            max_sum=S;
            max_st=st;
            max_dr=dr;
        }
    }


    fout << max_sum << " " << max_st + 1 << " " << max_dr + 1;

    return  0;
}