Cod sursa(job #2315648)

Utilizator Iulia25Hosu Iulia Iulia25 Data 10 ianuarie 2019 13:14:21
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>

using namespace std;

ifstream fin ("ssm.in");
ofstream fout ("ssm.out");

int n, a, minim, sp, maxim = -2e9, p1 = 1, p2 = 1, Max = -2e9, Maxi;
bool ok;

int main()  {
  fin >> n;
  for (int i = 1; i <= n; ++i)  {
    fin >> a;
    sp = sp + a;
    if (a > 0)
      ok = true;
    if (a > Max)
      Max = a, Maxi = i;
    if (sp < minim)
      minim = sp, p1 = i + 1;
    else if (sp - minim > maxim)
      maxim = sp - minim, p2 = i;
  }
  if (!ok)  {
    fout << Max << ' ' << Maxi << ' ' << Maxi;
  }
  else fout << maxim << ' ' << p1 << ' ' << p2;
}