제출 #216933

#제출 시각아이디문제언어결과실행 시간메모리
216933quocnguyen1012Cover (COCI18_cover)C++14
120 / 120
8 ms512 KiB
#include <bits/stdc++.h> #define fi first #define se second #define mp make_pair #define pb push_back #define eb emplace_back using namespace std; typedef long long ll; typedef pair<int, int> ii; const int maxn = 5005; ll f[maxn]; int N; ii p[maxn]; signed main(void) { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #ifdef LOCAL freopen("A.INP", "r", stdin); freopen("A.OUT", "w", stdout); #endif // LOCAL cin >> N; for(int i = 1; i <= N; ++i){ cin >> p[i].fi >> p[i].se; p[i].fi = abs(p[i].fi); p[i].se = abs(p[i].se); } sort(p + 1, p + 1 + N); vector<int> st; for(int i = 1; i <= N; ++i){ while(st.size() && p[st.back()].se <= p[i].se) st.pop_back(); st.eb(i); } int n = st.size(); for(int i = 1; i <= n; ++i){ f[i] = 1e18; for(int j = 1; j <= i; ++j){ f[i] = min(f[i], f[j - 1] + 1ll * p[st[i - 1]].fi * p[st[j - 1]].se); } } cout << 4ll * f[n]; }
#Verdict Execution timeMemoryGrader output
Fetching results...