Cod sursa(job #357261)

Utilizator LuffyBanu Lavinia Luffy Data 18 octombrie 2009 16:48:16
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<stdio.h>
#define dim 6000003
using namespace std;
int a[dim],b[dim];
long long int bs,i,n,poz,k,pozm;
int main()
{
 FILE *f=fopen("ssm.in","r"), *g=fopen("ssm.out","w");
 fscanf(f,"%lld",&n);
  for(i=1;i<=n;i++)
	fscanf(f,"%d",&a[i]);
  
  bs=a[1];
   for(i=1;i<=n;i++)
   {if(b[i]<b[i-1]+a[i])
	   b[i]=b[i-1]+a[i];
    if(bs<b[i])
	   {bs=b[i]; poz=i; if(pozm<poz) k=pozm;}
    else if((!b[i])&&(a[i]!=0)) pozm=i;}
  fprintf(g,"%lld ",bs);
   
fprintf(g,"%lld %lld\n",k+1,poz);
    
fclose(f);
fclose(g);
return 0;
}