Cod sursa(job #720980)

Utilizator PetcuIoanPetcu Ioan Vlad PetcuIoan Data 23 martie 2012 09:20:26
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<stdio.h>
#include<assert.h>

#include<algorithm>
#include<vector>

using namespace std;

int main(){
  assert(freopen("ssm.in", "r", stdin) != NULL);
  assert(freopen("ssm.out", "w", stdout) != NULL);

  int i, elements, sol, left = 1, right = 1, c_lf = 1, c_rt = 1, c_sum, aux;
  scanf("%d",&elements);

  scanf("%d", &sol);
  c_sum = sol;

  for(i = 2; i <= elements; ++i){
    scanf("%d", &aux);

    if(c_sum + aux >= aux){
      ++c_rt;
      c_sum += aux;
    }
    else{
      c_sum = aux;
      c_rt = c_lf = i;
    }

    if(c_sum > sol){
      left = c_lf;
      right = c_rt;
      sol = c_sum;
    }

  }

  printf("%d %d %d", sol, left, right);

  return 0;
}