Cod sursa(job #1262591)

Utilizator AlxzAlex Cremeneanu Alxz Data 13 noiembrie 2014 12:45:01
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#include <fstream>
#define INF 2000000000
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int a[60000001],b[60000001],Min,Max,c,l,i,x,y,Min1;
int main()
{
    fin >>x;
    Max=-INF;
    Min=INF;
    Min1=INF;
    for (i=1;i<=x;i++)
    {
        fin>>y;
        a[i]=a[i-1]+y;
        if (a[i]>Max)
        {
            Max=a[i];
            l=i;
        }
        if (a[i]<Min)
        {
            Min=a[i];
            c=i;
        }


    }


    if (c<l&&Min<0)
        fout <<Max-Min<<" "<<c+1<<" "<<l;
    else
        if(c<l&&Min>0)
            fout <<Max<<" "<<1<<" "<<l;
        else
        {
            if (Min<0)
            {
                for(i=l-1;i>0;i--)
                    if(a[i]<Min1&&a[i]<0)
                    {
                        Min1=a[i];
                        x=i;
                    }
                fout <<Max-Min1<<" "<<x+1<<" "<<l;
            }
            else
                fout <<Max<<" "<<1<<" "<<l;

        }

    return 0;
}