Cod sursa(job #1161499)

Utilizator andytosaAndrei Tosa andytosa Data 31 martie 2014 11:47:18
Problema Subsecventa de suma maxima Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>

using namespace std;

ifstream fin("ssm.in");
ofstream fout("ssm.out");

int v[50010],s[50010],n,k,i,smin,smax,poz1,poz2;
int main()
{
    fin>>n;
    k=1;
    for(i=0;i<n;i++)
        fin>>v[i];
    s[0]=v[0];
    smin=1250000000;
    smax=-1250000000;
    for(i=1;i<n;i++)
    {
        s[i]=s[i-1]+v[i];
        if(s[i]>smax&&i>=k)
        {
            smax=s[i];
            poz2=i;
        }
    }
    if(n==k)
    {
        fout<<s[n-1]<<" "<<1<<" "<<n;
    }
    else
    {
        for(i=poz2-k;i>=0;i--)
        {
            if(s[i]<smin)
            {
                smin=s[i];
                poz1=i;
            }
        }
        fout<<s[poz2]-s[poz1]<<" "<<poz1+2<<" "<<poz2+1;
    }
fin.close();
fout.close();
return 0;
}