Cod sursa(job #2450196)
| Utilizator | Data | 22 august 2019 12:13:17 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.81 kb |
#include <cstdio>
using namespace std;
bool fi=1;
int best;
int L;
int R;
void upd(int val,int l,int r)
{
if(val>best || fi)
{
fi=0;
best=val;
L=l;
R=r;
}
}
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
int n,x,fi=1;
scanf("%d%d",&n,&x);
upd(x,1,1);
int jeg=x;
for(int i=2;i<=n;i++)
{
scanf("%d",&x);
if(x>x+jeg)
{
fi=i;
jeg=x;
}
else
jeg+=x;
upd(jeg,fi,i);
}
printf("%d %d %d\n",best,L,R);
return 0;
}
