Cod sursa(job #263050)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 19 februarie 2009 21:18:48
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>
#define GET_BUF fread(b,sizeof(char),2048,stdin)
#define BL 2048
int n,i,j,p,q,sg,x,s,l,L,smax;

int main(){
char b[2050];
freopen("ssm.in","r",stdin);freopen("ssm.out","w",stdout);
scanf("%d\n",&n);
q=GET_BUF;
for (i=1;i<=n;++i){
  sg=1;x=0;
  if (b[j]=='-')sg=-1,j++;
	if (j==BL){q=GET_BUF;j=0;}
  while (b[j]>='0'&&b[j]<='9'&&j<q){
    x=x*10+b[j]-'0';
    j++;if (j==BL){q=GET_BUF;j=0;}
  }
  x*=sg;j++;
  if (j==BL){q=GET_BUF;j=0;}
  s+=x;l++;if (s<0){s=0;l=0;}
  if (s>smax){smax=s;p=i;L=l;}
}
printf("%d %d %d\n",smax,p-L+1,p);
return 0;
}