Pagini recente » Cod sursa (job #1089705) | Cod sursa (job #1214217) | Cod sursa (job #2747526) | Cod sursa (job #218932) | Cod sursa (job #469085)
Cod sursa(job #469085)
#include<algorithm>
using namespace std;
#define PARSE 7187
struct p
{
int st,dr,s;
p()
{
s=-(1<<30);
}
};
p sMax,sPar;
int n,i,x;
char parse[PARSE];
int DIM=PARSE,ind=PARSE-1;
void read(int &x)
{
x=0;
bool t=1;
while((parse[ind]<'0'||parse[ind]>'9')&&parse[ind]!='-')
if(++ind==DIM)
fread(parse,1,DIM,stdin),ind=0;
if(parse[ind]=='-')
{
t=0;
if(++ind==DIM)
fread(parse,1,DIM,stdin),ind=0;
}
while('0'<=parse[ind]&&parse[ind]<='9')
{
x=x*10+parse[ind]-'0';
if(++ind==DIM)
fread(parse,1,DIM,stdin),ind=0;
}
if(t==0)
x*=-1;
}
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
read(x);
if(sPar.s<0)
{
sPar.s=x;
sPar.st=sPar.dr=i;
}
else
{
sPar.s+=x;
sPar.dr=i;
}
if(sPar.s>sMax.s)
sMax=sPar;
}
printf("%d %d %d\n",sMax.s,sMax.st,sMax.dr);
return 0;
}