Cod sursa(job #1659246)

Utilizator ghillixRamona Ghilea ghillix Data 22 martie 2016 09:28:57
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,i,mn,mx,p1,p2,pmn;
long long s[6000005],v[6000005];
int main()
{
    ifstream f("ssm.in");
    ofstream g("ssm.out");

    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>v[i];
        s[i]=s[i-1]+v[i];
    }

    mn=s[1];
    for(i=2;i<=n;i++)
    {
        if(s[i-1]<mn)
        {
            mn=s[i-1];
            pmn=i;
        }

        if(s[i]-mn==mx && pmn==p1 && p2-p1>i-pmn)
        {
            mx=s[i]-mn;
            p2=i;
            p1=pmn;
        }
        else if(s[i]-mn==mx && pmn<p1)
        {
            mx=s[i]-mn;
            p2=i;
            p1=pmn;
        }
        else if(s[i]-mn>mx)
        {
            mx=s[i]-mn;
            p2=i;
            p1=pmn;
        }

    }

    g<<mx<<" "<<p1<<" "<<p2;


    return 0;
}