Cod sursa(job #1404415)
Utilizator | Zaharia 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);
}