// yukicoder: No.771 しおり // 2019.8.3 bal4u #include #include #if 1 #define gc() getchar_unlocked() #else #define gc() getchar() #endif int in() { // 非負整数の入力 int n = 0, c = gc(); // while (isspace(c)) c = gc(); do n = 10 * n + (c & 0xf); while ((c = gc()) >= '0'); return n; } #define INF 0x77777777 #define MAX 19 int N; int a[MAX], b[MAX]; int dp[1<>v) & 1) continue; x = dp[s][u] >= d[u][v]? dp[s][u]: d[u][v]; int *p = &dp[s | (1<= 0; u--) { if (ans > dp[lim][u]) ans = dp[lim][u]; } return ans; } int main() { int i, j; N = in(); for (i = 0; i < N; i++) a[i] = in(), b[i] = in()-a[i]; for (i = 0; i < N; i++) for (j = i+1; j < N; j++) { d[i][j] = b[i] + a[j]; d[j][i] = b[j] + a[i]; } printf("%d\n", calc(N)); return 0; }