Cod sursa(job #1995311)

Utilizator catalinlupCatalin Lupau catalinlup Data 27 iunie 2017 16:09:17
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <climits>
#define INFILE "ssm.in"
#define OUTFILE "ssm.out"

using namespace std;

ifstream in(INFILE);
ofstream out(OUTFILE);

struct Rasp{
int smax;
int in;
int fin;
void operator=(Rasp other){
    smax=other.smax;
    in=other.in;
    fin=other.fin;
}
};

int main()
{
    int n;
    in>>n;
    vector<int> Vec;
    for(int i=0;i<n;i++){
        int temp;
        in>>temp;
        Vec.push_back(temp);
    }
    Rasp SC;
    SC.smax=0;
    Rasp rasp;
     rasp.smax=INT_MIN;
    /*for(auto x: Vec){
        if(sc<0){
            sc=0;
        }
        sc+=x;
        if(sc>smax){
            smax=sc;
        }
    }*/
    SC.in=0;
    for(int i=0;i<Vec.size();i++){
        int x=Vec[i];
        if(SC.smax<0){
            SC.in=i;
            SC.smax=0;
        }
        SC.smax+=x;
        SC.fin=i;
        if(SC.smax>rasp.smax){
            rasp=SC;
        }
    }
    out<<rasp.smax<<" "<<rasp.in+1<<" "<<rasp.fin+1;



    return 0;
}