Cod sursa(job #404651)
| Utilizator | Data | 26 februarie 2010 14:51:57 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include<fstream>
using namespace std;
int n,s,a,i1,i,imax,jmax,smax;
int main()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>n;
i1=1;
s=0;smax=-2000000000;jmax=1;imax=2;
for(i=1;i<=n;i++)
{
f>>a;
if(s+a>=a)s+=a;
else {s=a;i1=i;}
if(s>smax)
{
smax=s;
imax=i1;jmax=i;
}
else
if(s==smax)
if(i-i1 < jmax-imax)
{
imax=i1;jmax=i;
}
}
g<<smax<<imax<<jmax;
return 0;
}
