Submission #1309553

#TimeUsernameProblemLanguageResultExecution timeMemory
1309553thecrazycandySafety (NOI18_safety)C++20
13 / 100
423 ms2652 KiB
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,fast-math")
#pragma GCC target("avx,avx2,fma")
using namespace std;
#define ll long long
#define sped_up ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define rall(v) (v).rbegin(), (v).rend()
#define all(v) (v).begin(), (v).end()
#define pb push_back
#define S second
#define F first
const ll INF = (ll)1e9 + 1, INFL = (ll)1e18 + 1;
const ll mod = (ll)1e9 + 7, MAXN = (ll)500 + 1;
ll dp[MAXN][MAXN];
ll a[MAXN], n, h;
int main() {
    sped_up;
    cin >> n >> h;
    ll mn = INFL;
    for (int i = 1; i <= 500; i++) {
        for (int j = 0; j <= 500; j++) dp[i][j] = INFL;
    }
    for (int i = 1; i <= n; i++) cin >> a[i];
    for (int i = 1; i <= n; i++) {
        for (int j = 0; j <= 500; j++) {
            for (int l = 0; l <= 500; l++) {
                if (abs(j - l) <= h) dp[i][j] = min(dp[i][j], dp[i - 1][l] + abs(a[i] - j));
            }
        }
    }
    for (int i = 0; i <= 500; i++) mn = min(mn, dp[n][i]);
    cout << mn;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...