제출 #961761

#제출 시각아이디문제언어결과실행 시간메모리
961761LucaIlieBuilding Bridges (CEOI17_building)C++17
30 / 100
3043 ms2712 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAX_N = 1e5;
long long h[MAX_N], 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[j] + h[j] * h[j] + h[i] * (-2 * h[j])  );
        dp[i] += w[i - 1] + h[i] * h[i];
    }

    cout << dp[n - 1];

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