Cod sursa(job #1012443)

Utilizator bigdoggMic Matei bigdogg Data 19 octombrie 2013 00:24:24
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>

using namespace std;

int main(int argc, char *argv[])
{
  int n;
  int minSumAbs, minIndexAbs = 1;
  int minSum, minIndex = 1;
  int maxSum, maxIndex = 1;
  int sum;

  ifstream in("ssm.in");
  in >> n;
  in >> sum;
  minSum = maxSum = minSumAbs = sum;
  for(int count = 2, x; count <= n; ++count)
  {
    in >> x;
    sum += x;
    if(sum < minSumAbs) minSumAbs = sum, minIndexAbs = count;
    else if(sum > maxSum)
    {
      maxSum = sum, maxIndex = count;
      minSum = minSumAbs, minIndex = minIndexAbs + 1;
    }
  }

  ofstream out("ssm.out");
  if(minSum < 0) out << maxSum - minSum << ' ';
  else out << maxSum << ' ';
  out << minIndex << ' ' << maxIndex << endl;

  return 0;
}