Cod sursa(job #906777)
| Utilizator | Data | 7 martie 2013 09:43:59 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.72 kb |
#include<fstream>
#define NMAX 6000010
using namespace std;
int n, a[NMAX], mx, pi, pf;
ifstream f("ssm.in");
ofstream g("ssm.out");
void Citeste()
{
int i;
f>>n;
for (i=1; i<=n; ++i) f>>a[i];
}
void Solve()
{
int i, p=1, sum=0, mx=a[1], pi=1, pf=1;
for (i=1; i<=n; ++i)
{
if (sum<0)
{
p=i;
sum=a[i];
}
else
{
sum+=a[i];
if (sum>mx)
{
mx=sum;
pi=p; pf=i;
}
}
}
g<<mx<<" "<<pi<<" "<<pf<<"\n";
}
int main()
{
Citeste();
Solve();
f.close();
g.close();
return 0;
}
