Cod sursa(job #2957388)
| Utilizator | Data | 22 decembrie 2022 15:22:42 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <fstream>
using namespace std;
const int INF = 2e9;
int main()
{
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n, sc_i = 0, smax = -INF, poz_secv_c = 1, st, dr;
fin >> n;
for (int i=1; i<=n; i++)
{
int x_i;
fin >> x_i;
if (x_i > sc_i + x_i)
{
sc_i = x_i;
poz_secv_c = i;
}
else
sc_i += x_i;
if (sc_i > smax)
{
smax = sc_i;
st = poz_secv_c;
dr = i;
}
}
fout << smax << " " << st << " " << dr;
fin.close();
fout.close();
return 0;
}
