Cod sursa(job #1922413)

Utilizator Harsan_SabinHarsan Sabin Harsan_Sabin Data 10 martie 2017 17:22:34
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#define Inf 1<<31

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int s[6000002],n,i,poz,maxi,maxi2,poz2,aux;
int main()
{
    fin>>n;
    fin>>s[i];
    maxi=s[i];
    maxi2=s[i];
    for(i=1;i<n;i++)
    {
        fin>>s[i];

        if(s[i]>maxi2)
        {
            maxi2=s[i];
            poz2=i;
        }

        if(s[i-1]!=Inf)
            s[i]=s[i]+s[i-1];

        if(s[i]<0)
            s[i]=Inf;

        if(s[i]>maxi)
        {
            maxi=s[i];
            poz=i;
        }
    }
    if(maxi>0)
    {
        aux=poz;
        while(s[aux]>=0)
            aux--;
        aux++;
        fout<<maxi<<" "<<aux+1<<" "<<poz+1;
    }
    else
        fout<<maxi2<<" "<<poz2+1<<" "<<poz2+1;
    return 0;
}