Cod sursa(job #653408)

Utilizator frumushelRadu Lucian Andrei frumushel Data 27 decembrie 2011 22:06:18
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<fstream>
#include<iostream>
using namespace std;
int main()
{
    int i,n,x,j,g3;
    int s[6000000];
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    f>>n;
    int max=-32000;
    int s1,s2;
    for(i=1;i<=n;i++)
    {
       f>>x;
      // g<<x;
       if(i==1)s[i]=x;
       else
       {
           //if(s[i-1]+x>s[i-1])s[i]=s[i-1]+x;
           //else s[i]=x;
           s1=s[i-1]+x;
           s2=x;
           if(s1>s2)s[i]=s1;
           else s[i]=s2;
           if(s[i]>max){ max=s[i]; g3=i;} 
       }
       //cout<<x<<" "<<s[i]<<endl;
    }
    int max2=max;
    max=-32000;
    int g2=0;
    for(j=1;j<g3;j++)
    if(s[g3]-s[j]>max){ max=s[g3]-s[j]; g2=j;}
    //for(i=g2;i<=g3;i++)
    //g<<i<<" ";
    g<<max2<<" "<<g2+1<<" "<<g3;
   system("pause");
}