Cod sursa(job #1076561)
| Utilizator | Data | 10 ianuarie 2014 13:04:17 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int a[6000000],best[6000000],bestsum,i,n,I,m;
int main ()
{
f>>n;
for (i=1; i<=n; i++)
{
f>>a[i];
}
bestsum = -2000000 ;
for (i = 1; i <= n; ++ i)
{
best[i] = a[i];
if (best[i] < best[i-1] + a[i])
best[i] = best[i-1] + a[i];
if (bestsum <= best[i])
{
bestsum = best[i];
I=i;
}
}
m=I;
g<<bestsum<<" ";
while (bestsum!=0)
{
bestsum-=a[I];
I--;
}
while (a[I]==0) I--;
g<<I+1<<" "<<m;
return 0;
}
