Submission #159257

#TimeUsernameProblemLanguageResultExecution timeMemory
159257nvmdavaBuilding Bridges (CEOI17_building)C++17
30 / 100
3029 ms2620 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ff first
#define ss second
#define pb push_back
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#define N 100005
#define INF 0x3f3f3f3f3f3f3f3f

ll dp[N], h[N], p[N];

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int n;
    cin>>n;

    for(int i = 1; i <= n; i++)
        cin>>h[i];
    for(int i = 1; i <= n; i++){
        cin>>p[i];
        p[i] += p[i - 1];
    }

    for(int i = 2; i <= n; i++){
        dp[i] = 0x3f3f3f3f3f3f3f3f;
        for(int j = 1; j < i; j++){
            dp[i] = min(dp[i], dp[j] + p[i - 1] - p[j] + (h[i] - h[j]) * (h[i] - h[j]));
        }
    }
    cout<<dp[n];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...