Cod sursa(job #2694129)

Utilizator Luca_Miscocilucainfoarena Luca_Miscoci Data 8 ianuarie 2021 11:11:38
Problema Subsecventa de suma maxima Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>

using namespace std;

int v[1005] , s[1005];

int main(){

  FILE *fin, *fout;
  fin = fopen("ssm.in","r");
  fout = fopen("ssm.out","w");

  int n, sm, start, stop, k;
  fscanf(fin, "%d", &n);
  for (int i = 0; i < n; i++)
    fscanf(fin ,"%d" ,&v[i]);

  s[0] = v[0];
  sm = s[0];
  start = stop = k = 0;
  for (int i = 1; i < n; i++){
    if (s[i - 1] >= 0)
      s[i] = s[i - 1] + v[i];
    else{
      s[i] = v[i];
      k = i;
    }
    if (s[i] > sm){
      sm = s[i];
      stop = i;
      start = k;
    }
  }
  fprintf (fout ,"%d %d %d", sm , start + 1 ,stop + 1);

  return 0;
}