Submission #538704

#TimeUsernameProblemLanguageResultExecution timeMemory
538704xuliuBuilding Bridges (CEOI17_building)C++17
30 / 100
3048 ms4480 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define debug if(0) const ll inf = 1e18 + 4; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n; vector<ll> h(n), w(n), wpref(n); for(int i=0; i<n; i++) cin>>h[i]; for(int i=0; i<n; i++) { cin>>w[i]; wpref[i] = (i ? wpref[i-1] : 0) + w[i]; } auto wseg = [&](int a, int b) { return wpref[b] - (a ? wpref[a-1] : 0); }; vector<ll> dp(n, inf); dp[0] = 0; for(int i=1; i<n; i++) { for(int j=i-1; j>=0; j--) { ll res = dp[j] + (h[i] - h[j])*(h[i] - h[j]); if(j+1 != i) res += wseg(j+1, i-1); dp[i] = min(dp[i], res); } } cout<<dp[n-1]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...