Pagini recente » Cod sursa (job #702828) | Cod sursa (job #2786007) | Cod sursa (job #807016) | Cod sursa (job #3313261) | Cod sursa (job #3313262)
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n, v, indiceStanga, indiceDreapta, lungimeaSecventa;
long long sumaMaxima, sumaCurenta;
int main()
{
sumaMaxima = -0x3f3f3f3f;
fin >> n;
for (int i = 1; i <= n; ++i)
{
fin >> v;
sumaCurenta += v;
lungimeaSecventa++;
if (sumaCurenta > sumaMaxima)
{
sumaMaxima = sumaCurenta;
indiceDreapta = i;
indiceStanga = i - lungimeaSecventa + 1;
}
if (sumaCurenta == sumaMaxima)
{
int stangaNou = i - lungimeaSecventa + 1;
if (stangaNou < indiceStanga)
{
indiceDreapta = i;
indiceStanga = stangaNou;
}
}
if (sumaCurenta < 0)
{
sumaCurenta = 0;
lungimeaSecventa = 0;
}
}
fout << sumaMaxima << " " << indiceStanga << " " << indiceDreapta << "\n";
return 0;
}