Pagini recente » Cod sursa (job #1627055) | Cod sursa (job #2224707) | Cod sursa (job #934536) | Cod sursa (job #2640013) | Cod sursa (job #1503227)
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
const int NMax = 6000005;
const int oo = 2000000000;
int Max = -oo,Begin, End, Start, Finish;
int X[NMax],DP[NMax];
int N;
void Read()
{
fin>>N;
for(int i = 1; i<=N; ++i)
fin>>X[i];
}
void Solve()
{
for(int i = 1; i<=N; ++i)
{
if(X[i] >= X[i] + DP[i-1])
{
DP[i] = X[i];
Begin = i;
End = i;
}
else
{
DP[i] = DP[i-1] + X[i];
End = i;
}
if(DP[i] > Max)
{
Max = DP[i];
Start = Begin;
Finish = End;
}
}
}
void Print()
{
fout<<Max<<" "<<Start<<" "<<Finish<<"\n";
}
int main()
{
Read();
Solve();
Print();
return 0;
}