Mai intai trebuie sa te autentifici.
Cod sursa(job #730107)
| Utilizator | Data | 4 aprilie 2012 14:47:33 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include<fstream>
#define Nmax 6000001
using namespace std;
int n,V[Nmax];
int st,poz,lg,Smax,sum;
ifstream f("ssm.in");
ofstream g("ssm.out");
int main()
{
f>>n;
for(st=1;st<=n;++st)
f>>V[st];
int i;
Smax=sum=V[1];
for(st=poz=1,lg=i=2;i<=n;++i)
{
if(sum<0)
{
sum=V[i];
st=i;
}
else{
sum+=V[i];
if(sum>Smax)
{
Smax=sum;
poz=st;
lg=i-st;
}
}
}
g<<Smax<<" "<<poz<<" "<<poz+lg;
f.close();
g.close();
return 0;
}
