Cod sursa(job #901334)

Utilizator BogdanOuatuOuatu Bogdan-Ioan BogdanOuatu Data 1 martie 2013 09:44:07
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>
using namespace std;
int a[6000000];
int main()
{
    int i, st, dr, sum=0, n,stm,drm,summ;
    ifstream fin ("ssm.in");
    fin>>n;
    for (i=1; i<=n;i++)
        fin>>a[i];
    fin.close();
    st=dr=stm=drm=1;
    sum=summ=a[1];
    while(dr!=n)
    {
        if(sum<=0)
            {st=dr=dr+1;
            sum=a[st];
            if(sum>summ||(sum==summ&&stm!=drm&&stm==st))
                {
                    summ=sum;
                    stm=drm=st;
                }
            }
        else
            {
                dr++;
                sum+=a[dr];
                if(sum>summ||(sum==summ&&(dr-st<drm-stm)&&stm==st))
                    {
                        summ=sum;
                        stm=st;
                        drm=dr;
                    }
            }
    }
    ofstream fout("ssm.out");
    fout<<summ<<" "<<stm<<" "<<drm<<"\n";

    return 0;
}