제출 #1318874

#제출 시각아이디문제언어결과실행 시간메모리
1318874discontinuousSafety (NOI18_safety)C++20
13 / 100
2093 ms18488 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define int long long const int MOD = 1e9 + 7; const int INF = 1e15; const int N = 1e6; int n, m, k, a, b, c, d, h, l, r, q, u, v, x, y; void solve() { cin >> n >> h; vector<int> arr(n+1); int maxh = 0; for(int i = 1; i<=n; i++) { cin >> arr[i]; maxh = max(maxh, arr[i]); } vector<vector<int>> dp(n+1, vector<int>(maxh+1)); for(int i = 1; i<=n; i++) { for(int j = 0; j<=maxh; j++) { dp[i][j] = INF; for(int k = 0; k<=maxh; k++) { if(abs(j-k) <= h) dp[i][j] = min(dp[i][j], dp[i-1][k]); } dp[i][j] += abs(arr[i]-j); } // cout << "\n"; } c = INF; for(int j = 0; j<=maxh; j++) { c = min(c, dp[n][j]); } cout << c; } int32_t main() { ios::sync_with_stdio(false); cout.tie(0); cin.tie(0); int tc = 1; // cin >> tc; while(tc--) { solve(); cout << "\n"; } return 0; }
#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...