제출 #1153511

#제출 시각아이디문제언어결과실행 시간메모리
1153511vladiliusCoin Collecting (JOI19_ho_t4)C++20
37 / 100
178 ms339968 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; #define pb push_back #define ff first #define ss second const ll inf = 1e18; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; int m = 2 * n; vector<pii> f = {{}}; for (int i = 1; i <= m; i++){ int x, y; cin>>x>>y; f.pb({x, y}); } sort(f.begin() + 1, f.end()); vector<vector<ll>> dp(m + 1, vector<ll>(n + 1, inf)); dp[0][0] = 0; for (int s = 1; s <= m; s++){ auto [x, y] = f[s]; for (int j = 0; j <= min(n, s); j++){ int i = s - j; if (i) dp[s][j] = min(dp[s][j], dp[s - 1][j] + abs(x - i) + abs(y - 1)); if (j){ ll f = dp[s - 1][j - 1] + abs(x - j) + abs(y - 2); dp[s][j] = min(dp[s][j], f); } } } cout<<dp[m][n]<<"\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...