Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #423058) | Cod sursa (job #3305402) | Cod sursa (job #3305050)
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int main()
{
int spCrt = 0, spMin = 0, n, inceputSecv = 1, raspStanga = 1, raspDreapta, ssm = -2e9;
f >> n;
for (int i = 1; i <= n; i++)
{
int nr;
f >> nr;
spCrt += nr;
if (spCrt - spMin > ssm) ///am resuit sa gasesc o ssm intre indicii [inceputSecv, i]
{
///am gasit o noua subsecventa de suma maxima
ssm = spCrt - spMin;
raspStanga = inceputSecv;
raspDreapta = i;
}
if (spCrt < spMin)
{
inceputSecv = i + 1;
spMin = spCrt;
}
}
g << ssm << ' ' << raspStanga << ' ' << raspDreapta;
return 0;
}