Submission #961759

#TimeUsernameProblemLanguageResultExecution timeMemory
961759LucaIlieBuilding Bridges (CEOI17_building)C++17
30 / 100
3051 ms3084 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAX_N = 1e5;
int h[MAX_N];
long long w[MAX_N], dp[MAX_N];

int main() {
    int n;

    cin >> n;
    for ( int i = 0; i < n; i++ )
        cin >> h[i];
    for ( int i = 0; i < n; i++ )
        cin >> w[i];
    for ( int i = 1; i < n; i++ )
        w[i] += w[i - 1];

    for ( int i = 1; i < n; i++ ) {
        dp[i] = 1e15;
        for ( int j = 0; j < i; j++ )
            dp[i] = min( dp[i], dp[j] + w[i - 1] - w[j] + (long long)(h[i] - h[j]) * (h[i] - h[j]) );
    }

    cout << dp[n - 1];

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...