Pagini recente » Cod sursa (job #1742121) | Cod sursa (job #3166143) | Cod sursa (job #3274739) | Cod sursa (job #484907) | Cod sursa (job #320177)
Cod sursa(job #320177)
#include<fstream>
#define N 6000001
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int s[N],i,st,dr,bestSum,beg,n,best[N];
int main()
{ fin>>n;
for(i=1;i<=n;i++) fin>>s[i];
bestSum=-N;beg=1;st=1;dr=1;
for(i=1;i<=n;i++)
{ best[i]=s[i];//presupunem ca incepem o secventa noua
if(best[i]<best[i-1]+s[i])//daca putem continua vechea secventa
best[i]=best[i-1]+s[i];//adunam elemntul curent
else beg=i;//altfel initializam indicele stang pentru nou secventa
if(bestSum<best[i])//daca am obtinut o suma mai mare facem modificarile necesare
{ bestSum=best[i];
st=beg;
dr=i;
}
}
fout<<bestSum<<' '<<st<<' '<<dr;
return 0;
}