Cod sursa(job #1312287)
| Utilizator | Data | 9 ianuarie 2015 09:25:49 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include<fstream>
using namespace std;
int main(){
long long s, smax, p, pmax,l,lmax,i,x,n;
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>n;
f>>x;
s=smax=x;
pmax=p=1;
lmax=1;
for(i=2;i<=n;i++)
{
f>>x;
if(s<0)
{
s=x;
p=i;
}
else
s=s+x;
if(s>smax)
{
smax=s;
pmax=p;
lmax=i-p+1;
}
else
if((s==smax) &&(p<pmax))
{
smax=s;
pmax=p;
lmax=i-p+1;
}
}
g<<smax<<" "<<pmax<<" "<<pmax+lmax-1;
}
