Cod sursa(job #309299)

Utilizator misuvdPopovici Mihai misuvd Data 29 aprilie 2009 23:51:00
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<fstream.h>
int max(int a,int b)
{
if(a>b)
return a;
else
return b;
}
const int maxn=7000005;
int s[maxn],n,i,x;
int main(void)
{
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    f>>n;
    for(i=1;i<=n;i++)
    f>>s[i];
    int sum=-2000000000, min=0,in,sf;
    for(i=1;i<=n;i++)
       {
        s[i]+=s[i-1];
        if (sum<s[i]-min)
        {
            sum=s[i]-min;
             in=x+1;
             sf=i;
         }
        if (min>s[i])
        {
            min=s[i];
             x=i;
       }
       }
    g<<sum<<" "<<in<< " " <<sf;
    f.close(), g.close();
    return 0;
}