Cod sursa(job #1233285)

Utilizator afkidStancioiu Nicu Razvan afkid Data 25 septembrie 2014 06:09:30
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <cstdio>

using namespace std;

const char InFile[]="ssm.in";
const char OutFile[]="ssm.out";
const long long int INF=-0x3f3f3f3f;;

inline int MAX(int a,int b)
{
    return((a>b)?a:b);
}

int n,t;

int main()
{
    freopen(InFile,"r",stdin);
    freopen(OutFile,"w",stdout);
    scanf("%d",&n);
    long int sum=0;
    long long int sumMax=INF;
    int aux=0;
    int head=0;
    int tail=0;
    for(int i=0;i<n;i++)
    {
        scanf("%d",&t);
        if(MAX(sum+t,t)==t||sum+t<0)
            {
                sum=t;
                aux=i;
            }
        else sum+=t;
        if(sum>sumMax)
            {
                sumMax=sum;
                head=aux;
                tail=i;
            }
    }
    printf("%lld %d %d\n",sumMax,head+1,tail+1);
    return 0;
}