Pagini recente » Diferente pentru problema/rmq intre reviziile 18 si 17 | Diferente pentru problema/hiking intre reviziile 7 si 3 | Diferente pentru utilizator/husanu intre reviziile 3 si 2 | Diferente pentru problema/maimute intre reviziile 25 si 6 | Cod sursa (job #1984107)
#include <fstream>
using namespace std;
ifstream F("ssm.in");
ofstream G("ssm.out");
int n, st, dr, v[6000005], smst, smdr;
int smc, smg; ///suma maxima crescatoare si suma maxima globala
int main()
{
F >> n;
for(int i = 1; i <= n; ++ i)
F >> v[i];
smg = v[1];
smc = v[1];
st = dr = smst = smst = 1;
for(int i = 2; i <= n; ++ i)
{
if(smc < 0)
st = dr = i, smc = v[i];
else
{
if(v[i] + smc > v[i])
dr ++, smc = v[i] + smc;
else st = dr = i, smc = v[i];
if(smc > smg)
smg = smc, smst = st, smdr = dr;
}
}
G << smg << " " << smst << " " << smdr;
return 0;
}