Pagini recente » Cod sursa (job #1492911) | Cod sursa (job #293212) | Cod sursa (job #766344) | Cod sursa (job #138089) | Cod sursa (job #3192546)
#include <fstream>
#include <climits>
using namespace std;
int main()
{
ifstream in("ssm.in");
ofstream out("ssm.out");
int n;
in >> n;
int sc_i = -1, smax = INT_MIN;
int pmax, umax, p_i;
for (int i = 0; i < n; i++)
{
int x_i;
in >> x_i;
if (x_i > sc_i + x_i)///<=> sc_i < 0
{
///resetam secventa curenta
sc_i = x_i;
p_i = i;///p_i = pozitia de inceput a secventei curente
///(cea mai buna care se termina pe poz. i)
}
else
{
///prelungim suma curenta de la pasul i-1
sc_i += x_i;
}
if (sc_i > smax)
{
smax = sc_i;
pmax = p_i;
umax = i;
}
}
out << smax << " " << pmax + 1 << " " << umax + 1;
in.close();
out.close();
return 0;
}