Cod sursa(job #1231126)
| Utilizator | Data | 19 septembrie 2014 17:26:36 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 15 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
#define Inf 0x3f3f3f3f
using namespace std;
int n,i,a[1000],sum[100],min0,bestSum,best[100],i2,j2,j3;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&n);
sum[0]=0;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
sum[i]=a[i]+sum[i-1];
}
min0=sum[0];
bestSum=-Inf;
for(i=1;i<=n;i++)
{
best[i]=sum[i]-min0;
if(min0 > sum[i]) {min0=sum[i]; j2=i;}
if(bestSum<=best[i]) {bestSum=best[i]; i2=i; j3=j2;}
}
printf("%d %d %d",bestSum,j3+1,i2);
return 0;
}
