Cod sursa(job #1499899)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 11 octombrie 2015 12:08:01
Problema Subsecventa de suma maxima Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>

using namespace std;

ifstream in("ssm.in");
ofstream out("ssm.out");
int n;
struct sub{long long int sum;int pi,pf;};
sub *p;

int main()
{
    in>>n;
    p = new sub[n+1];
    long long int x;
    long long int maxx = -1;
    int poz = -1;
    in>>x;
    p[1].sum = x;
    p[1].pi = 1;
    p[1].pf = 1;
    for(int i=2;i<=n;i++)
    {
        in>>x;
        if(p[i-1].sum+x>x)
        {
            p[i].sum = p[i-1].sum+x;
            p[i].pi = p[i-1].pi;
            p[i].pf = p[i-1].pf+1;
        }
        else
        {
            p[i].sum = x;
            p[i].pi = i;
            p[i].pf = i;
        }
        if(maxx<p[i].sum)
        {
            maxx = p[i].sum;
            poz = i;
        }
    }
    out<<p[poz].sum<<" "<<p[poz].pi<<" "<<p[poz].pf<<'\n';
    delete[] p;
    return 0;
}