제출 #599920

#제출 시각아이디문제언어결과실행 시간메모리
599920ShinBuilding Bridges (CEOI17_building)C++14
30 / 100
3074 ms3244 KiB
#include <bits/stdc++.h> #define fi first #define se second #define mp make_pair #define all(x) x.begin(), x.end() using namespace std; template <class X, class Y> bool minimize(X &a, Y b) { if (a > b) return a = b, true; return false; } template <class X, class Y> bool maximize(X &a, Y b) { if (a < b) return a = b, true; return false; } const int N = 1e5 + 7; int n; int a[N]; long long dp[N]; long long pref[N]; signed main() { cin.tie(0)->sync_with_stdio(0); cin >> n; for (int i = 1; i <= n; i ++) { cin >> a[i]; } for (int i = 1; i <= n; i ++) { int x; cin >> x; pref[i] = pref[i - 1] + x; } #define SQR(x) 1LL * (x) * (x) memset(dp, 0x3f, sizeof dp); dp[1] = 0; for (int i = 2; i <= n; i ++) { for (int j = 1; j < i; j ++) { minimize(dp[i], dp[j] + SQR(a[i] - a[j]) + pref[i - 1] - pref[j]); } } cout << dp[n]; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...