Cod sursa(job #328513)

Utilizator crisojogcristian ojog crisojog Data 2 iulie 2009 13:07:13
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.29 kb
/*#include<stdio.h>
long smax,s,n,i,a,st,dr,inc,sf;  
int main()  
{  
    freopen("ssm.in","r",stdin);  
    freopen("ssm.out","w",stdout);  
    scanf("%ld",&n);  
	scanf("%ld",&a);  
    s=smax=a;  
    st=dr=1;  
    for (i=2;i<=n;++i)  
    {  
        scanf("%ld",&a);  
        if (s+a>=a)  
        {  
            dr++;  
            s+=a;  
        }  
        else  
        {  
            st=dr=i;  
            s=a;  
        }  
        if (s>smax)  
        {  
            smax=s;  
            inc=st;  
            sf=dr;  
        }  
    }  
    printf("%ld %ld %ld\n",smax,inc,sf);  
    return 0;  
}  */
#include <fstream>  
#include <cctype>  
long smax,s,n,i,a,st,dr,inc,sf;  
int main()  
{  
	ifstream in("ssm.in");  
    ofstream out("ssm.out"); 
    in>>n;
	in>>a;
    s=smax=a;  
    st=dr=1;  
    for (i=2;i<=n;++i)  
    {  
        in>>a;  
        if (s+a>=a)  
        {  
            dr++;  
            s+=a;  
        }  
        else  
        {  
            st=dr=i;  
            s=a;  
        }  
        if (s>smax)  
        {  
            smax=s;  
            inc=st;  
            sf=dr;  
        }  
    }  
	out << smax << " " << inc << " " << sf;  
    in.close(), out.close();  
    return 0;  
}