Cod sursa(job #1209656)
| Utilizator | Data | 18 iulie 2014 11:55:08 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
using namespace std;
int main ()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
int suma[500000],i,n,pozmax,max=-200000,poz,nr;
f>>n;
suma[1]=-2000000000;
suma[0]=-2000000000;
for (i=1; i<=n; i++)
{
f>>nr;
if (nr>suma[i-1]+nr)
suma[i]=nr;
else
suma[i]=nr+suma[i-1];
}
for (i=1; i<=n; i++)
if (suma[i]>max)
{
max=suma[i];
pozmax=i;
}
for (i=pozmax; i>=1; i--)
if (suma[i]<=0)
poz=i;
g<<max<<" "<<poz+1<<" "<<pozmax;
return 0;
}
