Cod sursa(job #565783)
| Utilizator | Data | 28 martie 2011 11:57:38 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include<iostream>
#include<stdio.h>
using namespace std;
int v[6000001],sum[6000001],N;
int main()
{ int i,smax=-99999999,u=1,p=1,k=0;
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&N);
for(i=1;i<=N;++i)
{
scanf("%d\n",&v[i]);
sum[i]=0;
}
sum[0] = 0;
for (i = 1; i <= N; i++)
{
sum[i] = v[i] + sum[i-1];
if(sum[i]<0){
sum[i]=0;
k=i;
}
if(smax<sum[i]){
smax=sum[i];
u=i;
p=k+1;
}
}
cout<<smax<<" "<<p<<" "<<u;
}