Cod sursa(job #1671748)

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

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

    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;
}