// Latihan bergaya OSN, Bab 10, soal 1 -- pembahasan. // // Algoritma Kadane: satu kali baca. Untuk setiap posisi, potongan terbaik // yang berakhir di situ adalah "elemen ini sendiri" atau "elemen ini // ditambah potongan terbaik yang berakhir sebelumnya" -- mana yang lebih // besar. #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; long long terbaik = 0, sampaiSini = 0; for (int i = 0; i < n; i++) { long long x; cin >> x; if (i == 0) { sampaiSini = x; terbaik = x; } else { if (sampaiSini + x > x) sampaiSini = sampaiSini + x; else sampaiSini = x; if (sampaiSini > terbaik) terbaik = sampaiSini; } } cout << terbaik << "\n"; return 0; }