// Latihan bergaya OSN, Bab 13, soal 2 -- pembahasan. // // dp[i] = jumlah terbesar dari i barang pertama. Barang ke-i boleh // dilewati (dp[i-1]) atau diambil (dp[i-2] + nilai). // Hanya dua nilai terakhir yang diperlukan, jadi arraynya tidak dibuat. #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; long long duaLalu = 0, satuLalu = 0; for (int i = 0; i < n; i++) { long long x; cin >> x; long long sekarang = satuLalu; if (duaLalu + x > sekarang) sekarang = duaLalu + x; duaLalu = satuLalu; satuLalu = sekarang; } cout << satuLalu << "\n"; return 0; }