Cod sursa(job #469116)
Utilizator | Mititelu Andra alisssia | Data | 6 iulie 2010 13:55:52 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.47 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>maxi) maxj--;}
}
printf("%d %d %d\n",max,maxi+1,maxj+1);
return 0;
}