#include using namespace std; using ll = long long; const ll INF = 1e17; int main() { cin.tie(0); ios::sync_with_stdio(false); int n; cin >> n; vector c(n), d(n); for (int i = 0; i < n; i++) { cin >> c[i] >> d[i]; } vector dp(n, INF); vector dp2(n, INF); dp[n - 1] = c[n - 1] * 2; dp2[n - 1] = c[n - 1]; for (int i = n - 2; i >= 0; i--) { ll minv1 = min(dp2[i + 1], c[i]); ll cost1 = dp[i + 1] + d[i + 1] - dp2[i + 1] + minv1 + c[i]; ll minv2 = c[i]; ll cost2 = dp[i + 1] + 2 * c[i]; if (cost1 <= cost2) { dp[i] = cost1; dp2[i] = minv1; } else { dp[i] = cost2; dp2[i] = minv2; } } cout << dp[0] << endl; return 0; }