Cod sursa(job #2324484)

Utilizator cruelifanLouis Cypher cruelifan Data 20 ianuarie 2019 20:47:32
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <cstdio>
#include <algorithm>

using namespace std;

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

  int n, minsum = 0, minpos = -2, maxsum = -2000000000, maxpos = -1, aux, csum = 0, smaxpos = -1;
  scanf("%d", &n);

  for(int i = 1; i <= n; ++i){
    scanf("%d", &aux);
    csum += aux;

    if(csum - minsum > maxsum){
      maxsum = csum - minsum;
      maxpos = i;
      smaxpos = minpos + 1;
    }

    if(minsum >= csum){
      minsum = csum;
      minpos = i;
    }
  }

  if(smaxpos == -1)
    smaxpos = maxpos;

  printf("%d %d %d", maxsum, smaxpos, maxpos);

  return 0;
}