Cod sursa(job #2472209)
| Utilizator | Data | 12 octombrie 2019 10:30:34 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
using namespace std;
ifstream in ("ssm.in");
ofstream out ("ssm.out");
int v[6000001],sume[6000001];
int main ()
{
int n;
in>>n;
for (int i = 1;i<=n;++i)
in>>v[i];
int poz = 1,s = v[1],poz1=1,poz2=1;
for (int i = 1;i<=n;++i)
{
if (v[i] <= sume[i-1] + v[i])
sume[i] = sume[i-1] + v[i];
else
{
sume[i] = v[i];
poz = i;
}
if (sume[i]>s)
{
s = sume[i];
poz1 = poz;
poz2 = i;
}
}
out<<s<<' '<<poz1<<' '<<poz2;
return 0;
}
