Cod sursa(job #1404415)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 28 martie 2015 10:05:19
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
using namespace std;
int x,s[6000001],smin[6000001],mx,poz[6000001],n,i,a,q2,q1;
int main()
{freopen("ssm.in","r",stdin);
 freopen("ssm.out","w",stdout);
 scanf("%d",&n);
 for(i=1;i<=n;i++)
    {scanf("%d",&x);
     if(i==1) {smin[i]=x;poz[i]=i;}
     s[i]=s[i-1]+x;
     if(i>1){if(smin[i-1]>s[i-1]+x){smin[i]=s[i-1]+x;poz[i]=i;}
       else {smin[i]=smin[i-1];poz[i]=poz[i-1];}
            }
    }
 mx=s[1];
 for(i=1;i<=n;i++)
    {if(s[i]-smin[i-1]>mx){mx=s[i]-smin[i-1];q2=i;q1=poz[i-1];}
    }
 printf("%d %d %d",mx,q1+1,q2);
}