Cod sursa(job #716066)

Utilizator SpiriFlaviuBerbecariu Flaviu SpiriFlaviu Data 18 martie 2012 10:56:18
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;

ifstream fin("ssm.in");
ofstream fout("ssm.out");
int v[6000001];
int main()
{
    int n,max=-999999,x,i,s=0,stint,st,dr,k=0,maxn=-999999,cm,gasit=0;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
        if(v[i]>=0)
            gasit=1;
        if(v[i]>maxn)
            {maxn=v[i];
            cm=i;
            }
    }
    if(gasit)
    {

    for(i=1;i<=n;i++)
    {
        s+=v[i];
        if(s<0)
        {
            s=0;
            stint=i+1;
        }
        if(s>max)
        {
            max=s;
            dr=i;
            st=stint;
        }
    }

    fout<<max<<' '<<st<<' '<<dr;
    }
    else fout<<maxn<<' '<<cm<<' '<<cm;


    fin.close();
    fout.close();
    return 0;
}