Cod sursa(job #1127093)

Utilizator mircea98roMircea Popovici mircea98ro Data 27 februarie 2014 11:08:24
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("ssm.in");
ofstream g("ssm.out");

int cmp(int a,int b)
{
    return (a<b?0:1);
}
long long a[6000001],i,n ,p1,p2,pmax1,pmax2;
int main()
{
    f>>n;
    for (i=1;i<=n;i++)
        f>>a[i];
    /*nth_element(a+1,a+(n+1)/2+1,a+n+1);
    g<<a[(n+1)/2];
    */
    int s=0,maxx=0;
    for (i=1;i<=n;i++)
    {
        if (s+a[i]<0)
            s=0,p1=i+1;
        else
            s+=a[i],p2=i;
        if (s>maxx)
            maxx=s,pmax1=p1,pmax2=p2;
    }
    if (!maxx)
    {
        maxx=a[1];
        for (i=1;i<=n;i++)
            if(a[i]>maxx)
                maxx=a[i],pmax1=i,pmax2=i;
    }
    g<<maxx<<' '<<pmax1<<' '<<pmax2<<'\n';
    g.close();
    return 0;
}