Submission #1300453

#TimeUsernameProblemLanguageResultExecution timeMemory
1300453uranhishigBuilding Bridges (CEOI17_building)C++20
30 / 100
3093 ms3536 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define all(a) (a).begin(),(a).end()
#define rep(i, n) for(int i = 0; i < (n); i++)
const int mod = 1000000007;


signed main(){
	int n;
	cin >> n;
	vector<int> dp(n + 3, 1e9);
	vector<int> pr(n + 2, 0);
	vector<int> h(n);
	for (int i = 0; i < n; i++) {
		cin >> h[i];
	}
	vector<int> w(n);
	for (int i = 0; i < n; i++) {
		cin >> w[i];
		pr[i + 1] = pr[i] + w[i];
	}
	dp[0] = 0;
	for (int i = 1; i < n; i++) {
		for (int j = 0; j < i; j++) {
			int p=h[i] - h[j];
			dp[i] = min(dp[i], dp[j] + (p * p) + pr[i]-pr[j+1]);
		}
	}
	cout << dp[n-1];
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...