Cod sursa(job #1426191)

Utilizator iulian_f2kGuraliuc Iulian iulian_f2k Data 29 aprilie 2015 08:44:22
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include <fstream>

using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
/*
int sum[101][101],a[101][101],n,m,summax;

int main()// O(n^4)
{
    int i,j,i1,j1,suma;
    fin>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            fin>>a[i][j];
            sum[i][j]=a[i][j]+sum[i][j-1]+sum[i-1][j]- sum[i-1][j-1];
        }
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
        for(i1=i+1;i1<=n;i1++)
            for(j1=j+1;j1<=m;j1++)
            {
            suma=sum[i1][j1]-sum[i-1][j1]-sum[i1][j-1]+sum[i-1][j-1];
            if(suma>summax)
                summax=suma;
            }
        }
    fout<<summax<<'\n';


    return 0;
}*/


int main()
{
    int n,x,s,smax,i,pmax,umax,p,u;
    pmax=umax=p=u=1;

    fin>>n;
    fin>>x;
    s=x;
    smax=x;
    if(s<0)
        s=0,p=u=2;
    for(i=2;i<=n;i++)
    {
        fin>>x;
        s=s+x;
        u++;
        if(s>smax)
            {smax=s;pmax=p;umax=u;}
        if(s<0)
            {s=0;p=i+1;u=i;}
    }
    fout<<smax<<' '<<pmax<<' '<<umax<<'\n';
    return 0;
}