Pagini recente » Cod sursa (job #1993975) | Cod sursa (job #1217470) | Cod sursa (job #832904) | Cod sursa (job #1840738) | Cod sursa (job #1005116)
#include <fstream>
#include <stdio.h>
#define Nmax 6000099
#define NrCif 10
using namespace std;
int N,a[Nmax],start,finish;
long long S=-99999999999999;
char tmp[NrCif*Nmax+10];
void ReadInput()
{
int n;
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
scanf("%d\n",&N); //return;
fgets(tmp, 200000, stdin);
char *p = tmp;
int semn=1;if(tmp[0]=='-')semn=-1;
for (int i=1; i<=N; i++)
{
int val = 0;
for (; '0' <= *p && *p <= '9'; p++)
{
val = val * 10 + *p - '0';
}
a[i]=val*semn;
semn=1;
for (; '0' > *p || *p > '9'; p++)if(*p=='-')semn=-1;
//printf("%d ",a[i]);
}
}
void SSM(int N,int a[])
{
long long sum=-1;
int s=0;
for(int i=1;i=2;i++)
{
if(sum<0)sum=a[i],s=i;
else sum+=a[i];
if(sum>S)
{
S=sum; start=s; finish=i;
}
}
}
/*
program sdas;
var x,n,sum,smax,si,s,i,sf:longint;
f,g:text;
intrare,iesire:array[1..1 shl 25] of char;
begin
assign(f,'ssm.in'); reset(f); settextbuf(f,intrare);
assign(g,'ssm.out'); rewrite(g); settextbuf(g,iesire);
readln(f,n);
sum:=-1;
smax:=-1000000000;
for i:=1 to n do
begin
read(f,x);
if(sum<0) then begin
sum:=x;
s:=i;
end
else inc(sum,x);
if(sum>smax)then begin
smax:=sum;
sf:=i;
si:=s;
end;
end;
writeln(g,smax,' ',si,' ',sf);
close(f);close(g);
end.
*/
int main()
{
ReadInput(); //printf("\n");
SSM(N,a);
printf("%lld %d %d\n",S,start,finish);
return 0;
}