#include<bits/stdc++.h>
using namespace std;
long long dp[5100];						//storing solution for each addition of 2 new pilots.(2*i) & (2*i)+1. 
long long capt[10200],asis[10200];		//salary for captain and assistant for each i.
int parr[10200];						//storing partners for each i.
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n,f,f1;
    cin>>n;
    long long x,y;
    for(int i=0;i<n;i++)
        cin>>capt[i]>>asis[i];
    dp[0]=capt[1]+asis[0];				//solution for first pair
    parr[0]=1;							//1st pilot paired with 2nd and vice versa.
    parr[1]=0;
    for(int i=1;i<(n/2);i++){
        x=dp[i-1]+asis[2*i]+capt[(2*i)+1];		//if the 2 new added pilots are paired with each other
        f=2*i;									//f stores the partner of (2*i)+1
        f1=(2*i)+1;								//f1 stores the partner of (2*i)
        for(int j=0;j<(2*i);j++){
            if(parr[j]<j){						//if j's partner is less than j
                y=dp[i-1]-capt[j]+capt[2*i]+capt[(2*i)+1]+asis[j];	
                if(y<x){				
                    f=j;
                    f1=parr[j];
                    x=y;
                }
            }
            else if(parr[j]>j){					//if j's partner is greater than j
                y=dp[i-1]-capt[parr[j]]+capt[2*i]+capt[(2*i)+1]+asis[parr[j]];
                if(y<x){
                    f=parr[j];
                    f1=j;
                    x=y;
                }
            }
        }
        parr[(2*i)+1]=f;
        parr[2*i]=f1;
        dp[i]=x;
    }
    cout<<dp[(n/2)-1]<<"\n";
    return 0;
}
