Cod sursa(job #1502367)

Utilizator Cudrici_CarinaCudrici Carina Cudrici_Carina Data 14 octombrie 2015 16:36:07
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
using namespace std;
ifstream fi("ssm.in");
ofstream fo("ssm.out");
int n,i,best[6000003],x,maxi,sum,a[6000003],simin=6000003,
    sfmin=6000003,pi,pf,s;
int main()
{fi>>n;
 for (i=1;i<=n;i++) {fi>>x;a[i]=x;
                 best[i]=max(best[i-1]+x,x); }

sum=best[1];
 for (i=1;i<=n;i++) sum=max(sum,best[i]);


//for (i=1;i<=n;i++) fo<<best[i]<<" ";fo<<endl;
//for (i=1;i<=n;i++) fo<<a[i]<<" ";fo<<endl;

for (i=1;i<=n;i++)
  if (best[i]==sum)
  {pf=i;pi=i;s=0;
  while (s!=sum) {s+=a[pi];pi--;}
 pi++;

  if ((pi<simin) || (pi==simin and pf<sfmin))
                         {simin=pi;sfmin=pf;}

  }
   fo<<sum<<" "<<simin<<" "<<sfmin;
     return 0;
}