#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |