Submission #507581

#TimeUsernameProblemLanguageResultExecution timeMemory
507581LoboBuilding Bridges (CEOI17_building)C++17
30 / 100
3047 ms4416 KiB
#include<bits/stdc++.h> using namespace std; const long long inf = (long long) 1e18 + 10; const int inf1 = (int) 1e9 + 10; #define int long long #define dbl long double #define endl '\n' #define sc second #define fr first #define mp make_pair #define pb push_back #define all(x) x.begin(), x.end() #define maxn 110000 int n, h[maxn], w[maxn], ps[maxn], dp[maxn]; void solve() { cin >> n; for(int i = 1; i <= n; i++) { cin >> h[i]; } for(int i = 1; i <= n; i++) { cin >> w[i]; ps[i] = ps[i-1] + w[i]; } dp[n] = 0; for(int i = n-1; i >= 1; i--) { dp[i] = inf; for(int j = i+1; j <= n; j++) { dp[i] = min(dp[i], dp[j] + (h[j]-h[i])*(h[j]-h[i]) + ps[j-1] - ps[i]); } } cout << dp[1] << endl; } int32_t main() { ios::sync_with_stdio(false); cin.tie(0); // freopen("in.in", "r", stdin); //freopen("out.out", "w", stdout); int tt = 1; // cin >> tt; while(tt--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...