제출 #1239462

#제출 시각아이디문제언어결과실행 시간메모리
1239462nguyentunglamSafety (NOI18_safety)C++20
35 / 100
98 ms1292 KiB
#include<bits/stdc++.h> using namespace std; void solve() { int n, h; cin >> n >> h; vector<int> a(n); for (int i = 0; i < n; i++) cin >> a[i]; int m = 5001; vector<int> f(m); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { f[j] += abs(a[i] - j); } int mn = 0; for (int j = 1; j < m; j++) { if (f[j] < f[mn]) { mn = j; } } for (int j = 0; j < mn; j++) { assert(f[j] >= f[j + 1]); } for (int j = mn + 1; j < m; j++) { assert(f[j] >= f[j - 1]); } for (int j = 0; j < mn; j++) { f[j] = f[min(mn, j + h)]; } for (int j = m - 1; j > mn; j--){ f[j] = f[max(mn, j - h)]; } } int ans = 1e9; for (int j = 0; j < m; j++) ans = min(ans, f[j]); cout << ans << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int t = 1; // cin >> t; // Uncomment if you want to handle multiple test cases while (t--) { solve(); } 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...