Pagini recente » Cod sursa (job #2242251) | Cod sursa (job #2525012) | Cod sursa (job #2947023) | Cod sursa (job #3141282) | Cod sursa (job #3274908)
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
const int NMax = 6000000;
int X[NMax + 5],N,Begin, End,Sol;
int DP[NMax + 5];
int main()
{
fin >> N;
for(int i = 1; i<= N; ++i)
fin >> X[i];
for(int i = 1; i <= N; ++i)
DP[i] = max(X[i],X[i]+DP[i-1]);
Sol = DP[1]; Begin = End = 1;
for(int i = 1; i <= N; ++i)
{
if(DP[i] > Sol)
{
Sol = DP[i];
End = i;
}
}
int S = 0;
for(int i = End; i >= 1; --i)
{
S = S + X[i];
if(S == Sol)
{
Begin = i;
}
}
fout << Sol << " " << Begin << " " << End <<"\n";
return 0;
}