Cod sursa(job #1844693)

Utilizator AlexandruLuchianov1Alex Luchianov AlexandruLuchianov1 Data 10 ianuarie 2017 12:31:56
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream in ("ssm.in");
ofstream out ("ssm.out");
int main()
{
  long long n ,i ,a ,s = 0,smax,stt = 1,st = 1 ,dr = 1;
  bool ok = 1;
  in>>n;
  s = 0;
  for(i = 1 ; i <= n ;i++){
    in>>a;
    if(ok){
      smax = a;
      ok = 0;
    }
    s += a;
    if(smax < s){
      smax = s;
      dr = i;
      stt = st;
    } else if(smax == s){
      if(i - st < dr - stt ){
        dr = i;
        stt = st;
      }
    } if(s <= 0){
      s = 0;
      st = i + 1;
    }
  }
  out<<smax<<" "<<stt<<" "<<dr;
  return 0;
}