Pagini recente » Istoria paginii utilizator/arrowbasse | Cod sursa (job #1984945) | Cod sursa (job #1532687) | Cod sursa (job #1293859) | Cod sursa (job #1357569)
#include <fstream>
#include <limits>
using namespace std;
int main()
{
int n;
int max = numeric_limits<int>::min();
int currentSum = 0;
int currentStart = 0;
int iStart = 0;
int iEnd = 0;
ifstream in("ssm.in");
ofstream out("ssm.out");
currentSum = 0;
in >> n;
for (int i = 1; i <= n; ++i)
{
int x;
in >> x;
if (currentSum < 0)
{
currentSum = x;
currentStart = i;
}
else
{
currentSum += x;
}
if (currentSum > max)
{
max = currentSum;
iStart = currentStart;
iEnd = i;
}
}
out << max << " " << iStart << " " << iEnd;
in.close();
out.close();
return 0;
}