Pagini recente » Cod sursa (job #1605079) | Cod sursa (job #1787553) | Cod sursa (job #2447466) | Cod sursa (job #493318) | Cod sursa (job #2458970)
/** Determinarea subescventei de suma maxima
**/
#include <bits/stdc++.h>
#define NMax 6000005
using namespace std;
FILE*fin=fopen("ssm.in","r");
ofstream fout("ssm.out");
int n,v[NMax],maxi=INT_MIN,pozi,sts,drs;
int main()
{
int i,s=0,smax=INT_MIN,st;
fscanf(fin,"%d",&n);
for(i=1;i<=n;++i)
{
fscanf(fin,"%d",&v[i]);
if(v[i]>maxi) maxi=v[i], pozi=i;
}
for(i=1;i<=n;++i)
{
if(s<0)
{
s=v[i];
st=i;
}
else
s+=v[i];
if(s>smax)
{
smax=s;
sts=st;
drs=i;
}
}
if(smax>maxi)
fout<<smax<<" "<<sts<<" "<<drs<<'\n';
else fout<<maxi<<" "<<pozi<<" "<<pozi<<'\n';
return 0;
}