Mai intai trebuie sa te autentifici.
Cod sursa(job #721814)
Utilizator | Data | 24 martie 2012 11:01:35 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.79 kb |
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int n,i,poz1,poz2,sum,x,MAX,p1,p2;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d%d",&n,&x);
sum=x;
poz1=1;
poz2=1;
MAX=-2000000000;
for (i=2;i<=n;i++)
{
scanf("%d",&x);
if (sum+x>x) { sum=sum+x;
poz2=i;
}
else {
sum=x;
poz1=i;
poz2=i;
}
if (sum>MAX) {
MAX=sum;
p1=poz1;
p2=poz2;
}
}
if (sum>MAX) {
MAX=sum;
p1=poz1;
p2=poz2;
}
printf("%d %d %d",MAX,p1,p2);
return 0;
}