| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1331528 | kawhiet | Safety (NOI18_safety) | C++20 | 2089 ms | 327680 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
constexpr int inf = 1e18;
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, h;
cin >> n >> h;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int m = ranges::max(a);
vector<map<int, int>> dp(n);
// vector<vector<int>> dp(n, vector<int>(m + 1, inf));
for (int i = 0; i <= m; i++) {
dp[0][i] = abs(i - a[0]);
}
for (int i = 1; i < n; i++) {
for (int j = 0; j <= m; j++) {
int l = max(0LL, j - h);
int r = min(m, j + h);
for (int k = l; k <= r; k++) {
if (!dp[i].count(j)) {
dp[i][j] = inf;
}
dp[i][j] = min(dp[i][j], dp[i - 1][k] + abs(a[i] - j));
}
}
}
int ans = inf;
for (auto [x, y] : dp[n - 1]) {
ans = min(ans, y);
}
cout << ans << '\n';
return 0;
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
