Pagini recente » Cod sursa (job #2136247) | Monitorul de evaluare | Cod sursa (job #2535503) | Monitorul de evaluare | Cod sursa (job #2807024)
#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], pmax = 1;
for(int i=2;i<=n;i++)
{
fin>>a[i];
if(vmax < a[i])
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(vmax < 0)
fout<<vmax<<" "<<pmax<<" "<<pmax;
else
fout<<maxi<<" "<<pimax<<" "<<pfmax;
return 0;
}