Cod sursa(job #474213)

Utilizator crouchHotea Cristian crouch Data 2 august 2010 22:07:46
Problema Subsecventa de suma maxima Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;
int n,a[6000001],k,s,b[6000001],max1=-2000000000,sum,st,dr,st1,dr1,min1;
int main()
{
    ifstream f("ssm.in",ios::in);
    ofstream g("ssm.out",ios::out);
    f>>n;
    for(int i=1;i<=n;i++)
    f>>a[i];
    for(int i=1;i<=n;i++)
    {
      s+=a[i];
      b[i]=s;
    }

    for(int i=1;i<=n;i++)
    {
    min1=b[0];
    for(int j=0;j<i;j++)
    if(b[j]<min1)
    {min1=b[j];
     k=j;
    }

    sum=b[i]-min1;
    st=k+1;
    dr=i;
    if(sum>max1)
    {
        max1=sum;
        st1=st;
        dr1=dr;

    }
    else
    if(sum==max1)
     if(st<st1)
        {
        st1=st;
        dr1=dr;
        }
      else
       if(st==st1)
        if(dr<dr1)
             dr1=dr;
    }
    g<<max1<<" "<<st1<<" "<<dr1;
}