Cod sursa(job #1524542)

Utilizator daneel95Holteiu Daniel-Ninel daneel95 Data 14 noiembrie 2015 11:16:18
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>

using namespace std;

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

struct valoare{
    int sum;
    int inceput;
    int sfarsit;
}y;
int n,x;

int main()
{
    int i,max,min,sum=0,inceput,sfarsit,nr=1;
    in>>n;
    in>>x;
    min=max=sum=x;
    inceput=0;
    sfarsit=1;
    for(i=2;i<=n;i++)
    {
        in>>x;
        sum+=x;
        nr++;
        if(sum <= min)
        {
            min=sum;
            inceput=nr;
        }
        if(sum-min > max)
        {
            max=sum - min;
            sfarsit=nr;
        }
        //out<<"Suma="<<sum<<"\t Suma max="<<max<<"\t inceput="<<inceput<<"\t sfarsit="<<sfarsit<<"\n";
    }
    //inceput++;
    if(sfarsit<=inceput) inceput=sfarsit-1;
    out<<max<<" "<<inceput+1<<" "<<sfarsit;
    /*if(inceput==sfarsit) out<<max<<" "<<inceput<<" "<<sfarsit;
        else out<<max<<" "<<inceput+1<<" "<<sfarsit;*/
    in.close();
    out.close();
    return 0;
}