Pagini recente » Cod sursa (job #697723) | Cod sursa (job #3279482) | Cod sursa (job #1038635) | Cod sursa (job #1806597) | Cod sursa (job #1416483)
#include <fstream>
#include <cstring>
#define Max 6000000
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
bool ok=false;
int a[Max],best[Max],n,i,bestSum,pozsbestSum,s=0,pozibestSum;
int main()
{
/*bool ok=false;
int a[Max],best[Max],n,i,bestSum,pozsbestSum,s=0,pozibestSum=0;
memset(best,0,sizeof(best));
memset(a,0,sizeof(a));*/
fin>>n;
for(i=0;i<n;i++)
{
fin>>a[i];
}
bestSum = a[0];
pozsbestSum=0;
for(i=0;i<n;++i)
{
best[i]=a[i];
if(best[i]<best[i-1]+a[i])
best[i]=best[i-1]+a[i];
if(bestSum<best[i])
{
bestSum=best[i];
pozsbestSum=i;
}
}
fout<<bestSum<<' ';
for(i=pozsbestSum;i>=0 and ok==false;i--)
{
s=s+a[i];
if(s==bestSum)
{
ok=true;
pozibestSum=i;
}
}
fout<<pozibestSum+1<<' '<<pozsbestSum+1;
return 0;
}