Pagini recente » Cod sursa (job #2804707) | Cod sursa (job #2924654) | Teorema chineza a resturilor - generalizari si aplicatii | Cod sursa (job #904445) | Cod sursa (job #627715)
Cod sursa(job #627715)
#include <cstdio>
#define file_in "ssm.in"
#define file_out "ssm.out"
int N,i,suma,smax,ind,inc,sf,V[6001010];
#define D 8192
char g_buf[D];
int g_p=D-1;
inline int get()
{
int x=0;
while (g_buf[g_p]<'0' || g_buf[g_p]>'9')
if (++g_p==D) fread(g_buf,1,D,stdin),g_p=0;
while (g_buf[g_p]>='0' && g_buf[g_p]<='9'){
x=x*10+g_buf[g_p]-'0';
if (++g_p==D) fread(g_buf,1,D,stdin),g_p=0;
}
return x;
}
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
//scanf("%d", &N);
N=get();
for (i=1;i<=N;++i)
//scanf("%d", &V[i]);
V[i]=get();
smax=-0x3f3f3f3f;
suma=0;
for (i=1;i<=N;++i){
if (suma<0){
suma=V[i];
ind=i;
}
else
suma+=V[i];
if (smax<suma){
smax=suma;
inc=ind;
sf=i;
}
}
printf("%d %d %d", smax,inc,sf);
return 0;
}