Pagini recente » Cod sursa (job #377380) | Cod sursa (job #1538350) | Cod sursa (job #1666622) | Cod sursa (job #919245) | Cod sursa (job #862594)
Cod sursa(job #862594)
#include <fstream>
#define Open ifstream f("ssm.in"); ofstream g("ssm.out");
#define Close f.close(); g.close();
const int ler=6000000;
using namespace std;
Open
int a[ler], sum[ler],best,Max(),n,mmin,m,mmax;
int main()
{
f>>n;
for(int i=1;i<=n;i++)
f>>a[i];
g<<Max();
g<<' ';
g<<mmin;
g<<' ';
g<<mmax;
Close
return 0;
}
int Max()
{sum[0]=0;
int min=0;
bool ok=true;
int BEST=-2147483648;
for(int i=1;i<=n;i++)
{
if(a[i]<0) ok=false;
sum[i]=a[i]+sum[i-1];
}
for(int i=1;i<=n;i++)
{
best=sum[i]-min;
if(sum[i]<min)
{
m=i+1;
min=sum[i];
}
if(best>BEST)
{
BEST=best;
mmin=m;
mmax=i;
}
}
if(!ok) mmin--;
return BEST;
}