Cod sursa(job #2036248)
| Utilizator | Data | 10 octombrie 2017 15:44:58 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int suma ,a[6000001] ,n ,pos ,start ,sfarsit ,bestsuma, i;
int main()
{
fin>>n;
bestsuma = -int(2e9);
for (i=1;i<=n;i++)
fin>>a[i];
for (i=1;i<=n;i++)
{
if (suma < 0)
{
suma = a[i];
pos = i;
}
else
suma+=a[i];
if (bestsuma < suma)
{
bestsuma = suma;
sfarsit = i;
start = pos;
}
}
fout<<bestsuma<<' '<<start<<' '<<sfarsit;
return 0;
}
