Cod sursa(job #879546)

Utilizator ArmandNMArmand Nicolicioiu ArmandNM Data 15 februarie 2013 16:45:28
Problema Subsecventa de suma maxima Scor 45
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n,v[100003],sum[100003],i,inc,sf,sm,aux;

int maxim(int a, int b)
{
    if (a>b) return a;
    return b;
}

int main()
{
    f>>n;
    f>>v[1];
    sm=v[1];
    sf=1;
    sum[1]=v[1];
    for (i=2;i<=n;i++)
    {
        f>>v[i];
        sum[i]=maxim(sum[i-1]+v[i],v[i]);
        if (sum[i]>sm)
        {
            sm=sum[i];
            sf=i;
        }
    }
    aux=sm;
    for (i=sf;i>=1;i--)
    {
        aux=aux-v[i];
        if (aux==0) inc=i;
    }
    g<<sm<<" "<<inc<<" "<<sf;
    f.close();
    g.close();
    return 0;
}