Cod sursa(job #1404423)
Utilizator | Zaharia Stefan Tudor stefzah | Data | 28 martie 2015 10:27:47 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <cstdio>
using namespace std;
int x,s,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;mx=x;}
if(i>1){if(smin[i-1]>s+x){smin[i]=s+x;poz[i]=i;}
else {smin[i]=smin[i-1];poz[i]=poz[i-1];}
}
s=s+x;
if(s-smin[i-1]>mx){mx=s-smin[i-1];q2=i;q1=poz[i-1];}
}
printf("%d %d %d",mx,q1+1,q2);
}