Cod sursa(job #469112)
| Utilizator | Data | 6 iulie 2010 13:48:27 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
using namespace std;
#include<cstdio>
int best, besti, i,j,max,maxi,maxj,v,n;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&n);
scanf("%d",&v);
best=max=v;
besti=maxi=0;
for(i=1;i<n;i++)
{
scanf("%d",&v);
if(best+v>v) best=best+v;
else {best=v; besti=i;}
if(best>max) {max=best; maxi=besti; maxj=i; if(!v) maxj--;}
}
printf("%d %d %d\n",max,maxi+1,maxj+1);
return 0;
}
