Pagini recente » Rezultatele filtrării | Cod sursa (job #2569599)
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
const int nmax=6000005;
int main()
{
int n,a[nmax],dp[nmax],inc[nmax],poz,rez=INT_MIN;
fin >> n;
for (int i=1;i<=n;i++)
{
fin >> a[i];
}
dp[1]=a[1];
inc[1]=1;
for (int i=2;i<=n;i++)
{
if (a[i]>dp[i-1]+a[i])
{
dp[i]=a[i];
inc[i]=i;
}
else
{
dp[i]=dp[i-1]+a[i];
inc[i]=inc[i-1];
}
}
for (int i=1;i<=n;i++)
{
if (dp[i]>rez)
{
rez=dp[i];
poz=i;
}
}
fout << rez << " " << inc[poz] << " " << poz;
}