Cod sursa(job #1233280)

Utilizator afkidStancioiu Nicu Razvan afkid Data 25 septembrie 2014 05:43:47
Problema Subsecventa de suma maxima Scor 80
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 int DIMN=6000050;
const int INF=-2000000000;

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);
    int sum=INF;
    int sumMax=INF;
    int head=0;
    int tail=0;
    for(int i=0;i<n;i++)
        scanf("%d",&v[i]);
    for(int i=0;i<n;i++)
    {
        if(MAX(sum+v[i],v[i])==v[i])
            {
                sum=v[i];
                head=i;
            }
        else sum+=v[i];
        if(sum>sumMax)
            {
                sumMax=sum;
                tail=i;
            }
    }
    printf("%d %d %d\n",sumMax,head+1,tail+1);
    return 0;
}