Cod sursa(job #1009623)

Utilizator lolmanDomuta Dariu lolman Data 13 octombrie 2013 16:23:22
Problema Subsecventa de suma maxima Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,pre[6000000], best[6000000],i,a,b,c,maxim,v[6000000];
int main()
{
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    f>>n;
    for (i=1;i<=n;i++)
          f>>v[i];
    best[n]=v[n];
    pre[n]=v[n];
    for (i=n-1;i>=1;i--)
         if (v[i]+best[i+1]>v[i])
               {
                   best[i]=v[i]+best[i+1];
                   pre[i]=pre[i+1];
               }
         else
               {
                   best[i]=v[i];
                   pre[i]=i;
               }
    for (i=1;i<=n;i++)
         if (best[i]>maxim)
              {
                  maxim=best[i];
                  a=best[i];
                  b=i;
                  c=pre[i];
              }
    g<<a<<" "<<b<<" "<<c;
    return 0;
}