Submission #676300

#TimeUsernameProblemLanguageResultExecution timeMemory
676300penguin133Safety (NOI18_safety)C++17
4 / 100
565 ms262144 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pi pair<int, int> #define pii pair<int, pi> #define fi first #define se second #define getchar_unlocked _getchar_nolock int n, h, S[300005]; int dp[5005][5005]; deque<pi>dq; void solve(){ cin >> n >> h; for(int i=1;i<=n;i++)cin >> S[i]; for(int i=0;i<=5000;i++)dp[1][i] = abs(S[1] - i); for(int i=2;i<=n;i++){ dq.clear(); for(int j=0;j<=h;j++){ while(!dq.empty() && dq.back().fi > dp[i-1][j])dq.pop_back(); dq.push_back({dp[i-1][j], j}); } for(int j=0;j<=5000;j++){ if(!dq.empty() && dq.front().se < j - h)dq.pop_front(); pi tmp = dq.front(); dp[i][j] = tmp.fi + abs(S[i] - j); if(j + h + 1 <= 5000){ while(!dq.empty() && dq.back().fi > dp[i-1][j + h + 1])dq.pop_back(); dq.push_back({dp[i-1][j+h+1], j+h+1}); } } } int ans = 1e18; for(int i=0;i<=5000;i++)ans = min(ans, dp[n][i]); cout << ans; } main(){ ios::sync_with_stdio(0);cin.tie(0); int tc = 1; //cin >> tc; while(tc--){ solve(); } }

Compilation message (stderr)

safety.cpp:40:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   40 | main(){
      | ^~~~
#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...