Pagini recente » Cod sursa (job #454826) | Cod sursa (job #1135634) | Cod sursa (job #1052744) | Cod sursa (job #1778701) | Cod sursa (job #2719718)
#include<iostream>
#include<fstream>
#include<climits>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
#define nrm 6000005
int n;
int sume[nrm];
int smin[nrm];
int p[nrm];
void citire()
{
fin>>n;
for(int i=1;i<=n;i++)
{
int x;
fin>>x;
sume[i]=sume[i-1]+x;
}
}
int main ()
{
citire();
int start,minim=0,maxim=INT_MIN,stop,pos;
for(int i=1;i<=n;i++)
{
if(sume[i]<minim)
{
minim=sume[i];
smin[i]=sume[i];
pos=i;
p[i]=pos;
}
else
{
smin[i]=minim;
p[i]=pos;
}
if(maxim<sume[i]-smin[i])
{
maxim=sume[i]-smin[i];
start=p[i];
stop=i;
}
}
fout<<maxim<<" "<<start+1<<" "<<stop;
fin.close();
fout.close();
return 0;
}