Submission #928658

#TimeUsernameProblemLanguageResultExecution timeMemory
928658RegulusBuilding Bridges (CEOI17_building)C++17
30 / 100
3037 ms4444 KiB
#include <bits/stdc++.h> #define IO ios::sync_with_stdio(false);cin.tie(0); #define debug(x) cerr << #x << " = " << (x) << ' ' #define bug(x) cerr << (x) << ' ' #define endl cerr << '\n' #define all(v) (v).begin(), (v).end() #define SZ(v) (ll)(v).size() #define lowbit(x) (x)&-(x) #define pb emplace_back #define F first #define S second using namespace std; using ll = long long; using pll = pair<ll, ll>; const int N = 1e5+5; const ll LLINF = 2e18; ll h[N], w[N], dp[N], sum[N]; int main(void) { IO int n, i; cin >> n; for (i=1; i <= n; ++i) cin >> h[i]; for (i=1; i <= n; ++i) cin >> w[i], sum[i] = sum[i-1] + w[i]; for (i=1; i <= n; ++i) dp[i] = LLINF; dp[1] = 0; for (i=2; i <= n; ++i) { for (int j=i-1; j >= 1; --j) { ll tmp = dp[j] + (h[i]-h[j])*(h[i]-h[j]) + sum[i-1]-sum[j]; dp[i] = min(dp[i], tmp); } } cout << dp[n] << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...