Cod sursa(job #1233282)

Utilizator afkidStancioiu Nicu Razvan afkid Data 25 septembrie 2014 05:56:21
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <cstdio>

using namespace std;

const char InFile[]="ssm.in";
const char OutFile[]="ssm.out";
const int DIMN=6000050;
const int INF=-2147483640;

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

int n,v[DIMN];

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