Cod sursa(job #2269858)

Utilizator iona_puddingbeldea ionela iona_pudding Data 26 octombrie 2018 17:39:28
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
using namespace std;

int divide(int v[],int left,int right)
{
    int mid=(left+right)/2;
    if(left>=right) return 0;
    int r1=divide(v,left,mid);
    int r2=divide(v,mid+1,right);
    int sleft=0,sright=0,s=0;
    for(int i=mid;i>=left;i--)
    {
        s+=v[i];
        if(sleft<s) sleft=s;
    }
    s=0;
    for(int i=right;i>mid;i--)
    {
        s+=v[i];
        if(sright<s) sright=s;
    }
    int r3=sleft+sright;
    if(r1>r2&&r1>r3)
        return r1;
    if(r2>r3)
        return r2;
    return r3;
}

int main()
{
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    int n;
    cin>>n;
    int v[n];
    for(int i=0;i<n;i++)
        cin>>v[i];
    cout<<divide(v,0,n-1)<<" "<<v[0]<<"  "<<v[n-1];
    cout.flush();
    return 0;
}