Cod sursa(job #1146900)

Utilizator Adi__mMaduta Adrian Adi__m Data 19 martie 2014 13:29:10
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<fstream>
using namespace std;
#define dim 6000002
struct {int begin; int end; int val;}sum[dim];
int main()
{
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    int n,x,minim,maxim; int i,begin,end;
    f>>n; int s=0;
    for(i=1;i<=n;i++)
    {
        f>>x;
        s+=x;
        sum[i].val=s;
        sum[i].begin=1; sum[i].end=i;
    }
    f.close();
    minim=0; maxim=0; int pozmin;
    for(i=1;i<=n;i++)
    {
        if(sum[i].val<minim) {minim=sum[i].val; pozmin=sum[i].end+1;}
        if(maxim<sum[i].val-minim) {maxim=sum[i].val-minim; begin=pozmin; end=sum[i].end;}
    }
    g<<maxim<<' '<<begin<<' '<<end<<'\n';
    g.close();
    return 0;
}