#pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #ifdef local #include #else #define dump(...) void(0); #endif #include #include #include #include namespace man { } int main() { std::cin.tie(nullptr) -> sync_with_stdio(false); int n; std::cin >> n; std::vector a(n); for(auto &e: a) { std::cin >> e; } std::vector dp(n + 1, std::vector(2, 0L)); for(const auto &i: std::views::iota(0, n)) { dp[i + 1][1] = std::max(dp[i][1], dp[i][0] - a[i]); if(i == 0) { continue; } dp[i + 1][0] = std::max(dp[i][0], dp[i][1] + a[i]); } dump(dp); const auto ret = *std::ranges::max_element(dp.back()); if(ret == 0) { std::cout << *std::ranges::min_element(a) << '\n'; std::exit(0); } std::cout << ret << '\n'; }