Pagini recente » Cod sursa (job #1798944) | Cod sursa (job #2409068) | Cod sursa (job #491017) | Cod sursa (job #2262868) | Cod sursa (job #593255)
Cod sursa(job #593255)
# include <algorithm>
# include <cstdio>
using namespace std;
# define x first
# define y second
typedef pair <int, int> PR ;
const char *FIN = "wanted.in", *FOU = "wanted.out" ;
const int MAX = 205, oo = 0x7FFFFFFF ;
PR V[MAX] ;
int dp[MAX][MAX] ;
int N ;
int main (void) {
freopen (FIN, "r", stdin) ;
scanf ("%d", &N) ;
for (int i = 1; i <= N; ++i)
scanf ("%d %d", &V[i].x, &V[i].y) ;
sort (V + 1, V + N + 1) ;
for (int k = 2; k <= N; ++k) {
for (int i = 1, j; i <= N - k + 1; ++i) {
dp[i][j = i + k - 1] = oo ;
for (int l = i + 1; l <= j; ++l)
dp[i][j] = min (dp[i][j], max (dp[l][i + 1], dp[l][j]) + V[l].x - V[i].x + V[l].y + V[i].y);
dp[j][i] = oo ;
for (int l = i; l < j; ++l)
dp[j][i] = min (dp[j][i], max (dp[l][j - 1], dp[l][i]) + V[j].x - V[l].x + V[l].y + V[j].y);
}
}
int sol = oo ;
for (int i = 1; i <= N; ++i)
sol = min (sol, max (dp[i][1], dp[i][N]) + abs (V[i].x) + V[i].y) ;
fprintf (fopen (FOU, "w"), "%d", sol) ;
}