| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1294111 | thuhienne | Safety (NOI18_safety) | C++20 | 2095 ms | 800 KiB |
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll inf = 1e18;
#define re exit(0);
#define thuhien ""
#define prev __prev__
int n,diff,arr[200009];
ll dp[5009],prev[5009];
int main() {
// ios_base::sync_with_stdio(0);cin.tie(nullptr);
if (fopen(thuhien".inp","r")) {
freopen(thuhien".inp","r",stdin);
freopen(thuhien".out","w",stdout);
}
cin >> n >> diff;
for (int i = 1;i <= n;i++) cin >> arr[i];
if (diff > 5000) {
cout << 0;
return 0;
}
for (int i = 0;i <= 5000;i++) dp[i] = abs(arr[1] - i);
for (int i = 2;i <= n;i++) {
for (int j = 0;j <= 5000;j++) prev[j] = dp[j],dp[j] = inf;
deque <int> dq;
for (int j = 0;j < diff;j++) {
while (dq.size() && prev[dq.back()] >= prev[j]) dq.pop_back();
dq.push_back(j);
}
for (int j = 0;j <= 5000;j++) {
if (j + diff <= 5000) {
while (dq.size() && prev[dq.back()] >= prev[j + diff]) dq.pop_back();
dq.push_back(j + diff);
}
while (dq.size() && dq.front() < j - diff) dq.pop_front();
dp[j] = prev[dq.front()] + abs(j - arr[i]);
}
}
cout << *min_element(dp,dp + 5001);
}
Compilation message (stderr)
| # | 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... | ||||
