Cod sursa(job #2315658)

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

using namespace std;

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

int n, a, minim, sp, maxim, p1 = 1, p2 = 1, p12, 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, p12 = p1;
  }
  if (!ok)
    fout << Max << ' ' << Maxi << ' ' << Maxi;
  else
    fout << maxim << ' ' << p12 << ' ' << p2;
}