Pagini recente » Profil linda | pregatire_oni2011_runda3 | Cod sursa (job #122936) | Cod sursa (job #2728043) | Cod sursa (job #1247447)
//
// main.cpp
// ssm
//
// Created by Andru Zuniga on 22.10.2014.
// Copyright (c) 2014 Zuniga Andru Felipe. All rights reserved.
//
#include <fstream>
using namespace std;
struct Sumă {
int valoare;
int început;
int sfârșit;
};
Sumă sumăMaximă(int șir[], int lungime) {
int șirDeSume[lungime], sumăMax, pozSumăMax = 0, sumăMin, pozSumăMin = 0;
șirDeSume[0] = șir[0];
sumăMax = șirDeSume[0];
sumăMin = șirDeSume[0];
for (int i = 1; i < lungime - 1; i++) {
șirDeSume[i] = șirDeSume[i - 1] + șir[i];
if (sumăMax < șirDeSume[i]) {
sumăMax = șirDeSume[i];
pozSumăMax = i;
}
if (sumăMin > șirDeSume[i]) {
sumăMin = șirDeSume[i];
pozSumăMin = i;
}
}
Sumă sumă;
sumă.valoare = sumăMax - sumăMin;
sumă.început = pozSumăMin + 2;
sumă.sfârșit = pozSumăMax + 1;
return sumă;
}
int main(int argc, const char * argv[]) {
ifstream f;
f.open("ssm.in");
int n;
f >> n;
int șir[n];
for (int i = 0; i < n - 1; i++) {
f >> șir[i];
}
f.close();
ofstream g;
g.open("ssm.out");
Sumă sumaMaximă = sumăMaximă(șir, n);
g << sumaMaximă.valoare << " " << sumaMaximă.început << " " << sumaMaximă.sfârșit;
g.close();
return 0;
}