Cod sursa(job #2035759)

Utilizator YusyBossFares Yusuf YusyBoss Data 9 octombrie 2017 19:59:34
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
#define Nmax 6000005
#define INF 2000000000

using namespace std;

int v[Nmax], s[Nmax], n;

int main() {
  ifstream cin ("ssm.in");
  ofstream cout ("ssm.out");

  int i, minim = INF, poz, left, right, sol = -INF, dr;
  cin >> n;
  for (i = 1; i <= n; i++) {
    cin >> v[i];
    s[i] = s[i - 1] + v[i];
  }
  for (dr = 1; dr <= n; dr++){
    if(s[dr-1] < minim)
    {
      minim = s[dr-1];
      poz = dr;
    }
    if (s[dr] - s[poz - 1] > sol) {
      sol = s[dr] - s[poz - 1];
      left = poz;
      right = dr;
    }
  }
  cout << sol << " " << left << ' ' << right;
  return 0;
}