Cod sursa(job #2867843)
Utilizator | Data | 10 martie 2022 16:25:10 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in ("ssm.in");
ofstream out ("ssm.out");
int main()
{
int n;
in >> n;
int max_sum = -(1<<31), poz1 = -1, poz2 = -1;
int sum_now = 0, pozz1 = 0, pozz2 = 0;
for (int i = 1;i<=n;++i)
{
int a;
in >> a;
if (sum_now + a > a)
sum_now += a, pozz2 = i;
else
sum_now = a, pozz1 = i, pozz2 = i;
if (sum_now > max_sum)
max_sum = sum_now, poz1 = pozz1, poz2 = pozz2;
}
out << max_sum << ' ' << poz1 << ' ' << poz2 << '\n';
return 0;
}