Pagini recente » Cod sursa (job #1423690) | Istoria paginii runda/preorange/clasament | Cod sursa (job #2099610) | Cod sursa (job #1973059) | Cod sursa (job #2807016)
#include<fstream>
#define in "ssm.in"
#define out "ssm.out"
using namespace std;
int a[6000005], n, dp[6000005], pi, maxi, pimax, pfmax;
ifstream fin(in);
ofstream fout(out);
int vmax, pmax;
int main()
{
fin>>n;
fin>>a[1];
vmax = a[1];
for(int i=1;i<=n;i++)
fin>>a[i], vmax = max(vmax, a[i]), pmax = i;
dp[1] = a[1];
pi = 1;
for(int i=2;i<=n;i++)
{
if(dp[i-1] + a[i]>a[i])
dp[i] = dp[i-1] + a[i];
else
dp[i] = a[i], pi = i;
if(maxi < dp[i])
maxi = dp[i], pfmax = i, pimax = pi;
}
if(pfmax == 0)
fout<<vmax<<" "<<pmax<<" "<<pmax;
else
fout<<maxi<<" "<<pimax<<" "<<pfmax;
return 0;
}