Cod sursa(job #515736)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 22 decembrie 2010 11:52:47
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<stdio.h>
#define N 6000001
int main()
{long n,i,j=1,max=-N,k=1,s=0,b=0,t=0,s1,b1,v=0,j1=1;
char c; 
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%ld\n",&n);
for(i=1;i<=n;i++)
      {scanf("%c",&c);
      v=0;
      t=0;
      if(c=='-')
            v++;
      while(c!=' '&&c!='\n')
            {if(c!='-')
                 t=t*10+(c-'0');
            scanf("%c",&c);}
      if(v==1)
            t=-t;
      s1=s+t;
      if(b>s)
            {b1=s;
            j1=i;}
      else
            b1=b;
      if(max<s1-b1)
            {max=s1-b1;
            k=i;}
      s=s1;
      b=b1;
      if(j1<k)
            j=j1;}
if(j>k)
      printf("%ld %ld %ld\n",max,k,k);
else
      printf("%ld %ld %ld\n",max,j,k);
fclose(stdin);
fclose(stdout);
return 0;}