제출 #1127157

#제출 시각아이디문제언어결과실행 시간메모리
1127157abushbandit_Mean (info1cup19_mean)C++20
0 / 100
0 ms324 KiB
//~ how can i make it 10% more fun? //~ what it would take for me to enjoy this? #include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define all(x) x.begin(), x.end() #define ff first #define ss second template <class F, class _S> bool chmin(F &u, const _S &v){ bool flag = false; if ( u > v ){ u = v; flag |= true; } return flag; } template <class F, class _S> bool chmax(F &u, const _S &v){ bool flag = false; if ( u < v ){ u = v; flag |= true; } return flag; } int exp(int x, int n, int m) { x %= m; int res = 1; while (n > 0) { if (n & 1) { res = (res * x) % m; } x = (x * x) % m; n >>= 1; } return res; } int power(int x, int n) { int res = 1; while (n > 0) { if (n & 1) { res = res * x ; } x = x * x ; n >>= 1; } return res; } const int maxn = 2e5 + 1; const int mod = 1e9 + 7; const int inf = 1e18; void add(int &a, int b) { if (a + b >= mod) a = (a + b) - mod; else a += b; } void sub(int &a, int b) { if (a - b < 0) a = (a - b) + mod; else a -= b;; } template<typename T> using matrix = vector<vector<T>>; namespace FAST { template<typename T, typename F> istream &operator>>(istream &cin, pair<T, F> &p) { cin >> p.first >> p.second; return cin; } template<typename T, typename F> ostream &operator<<(ostream &cout, pair<T, F> &p) { cout << p.first << ' ' << p.second; return cout; } template<typename T> istream &operator>>(istream &cin, vector<T> &a) { for (T &i: a) cin >> i; return cin; } template<typename T> ostream &operator<<(ostream &cout, vector<T> &a) { for (T i: a) cout << i << ' '; return cout; } template<typename T> istream &operator>>(istream &cin, deque<T> &a) { for (T &i: a) cin >> i; return cin; } template<typename T> ostream &operator<<(ostream &cout, deque<T> &a) { for (T i: a) cout << i << ' '; return cout; } } using namespace FAST; void solve() { int n; cin >> n; vector<int> a(n); cin >> a; int res = 0; for(int i = 0;i < n - 1;i++) { int l = i, r = i + 1; int cur = 2; int ans = a[l] + a[r]; while(true) { int cand1 = -1; if(l > 0) { cand1 = a[l - 1]; } int cand2 = -1; if(r + 1 < n) { cand2 = a[r + 1]; } if(cand1 == -1 && cand2 == -1) { break; } if(cand1 == -1) { ans += (cand2 * cur); cur = cur * 2; r++; } else if(cand2 == -1) { ans += (cand1 * cur); cur = cur * 2; l--; } else { if(cand1 > cand2) { ans += cand2 * cur; cur = cur * 2; r++; } else { ans += cand1 * cur; cur = cur * 2; l--; } } } chmax(res, ans / cur); } cout << res; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0),cout.tie(0); int t = 1; //~ cin >> t; while(t--){ solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...