#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[100005],b[100005];
struct info{
	int v,po,t;
	bool operator <(const info b)const{
		return v<b.v;
	}
}c[200005];
int tp[100005],cnt[4];
int main(){
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)scanf("%d%d",&a[i],&b[i]),c[2*i-1]=(info){a[i],i,1},c[2*i]=(info){b[i],i,2};
	sort(c+1,c+2*n+1);
	for(int i=1;i<=n;i++)tp[c[i].po]|=c[i].t;
	for(int i=1;i<=n;i++)cnt[tp[i]]++;
	long long res=0;
	for(int i=1;i<=n;i++)res+=c[i].v;
	if(cnt[0]||!cnt[1]||!cnt[2])printf("%lld\n",res);
	else if(c[n+1].po!=c[n].po)printf("%lld\n",res+c[n+1].v-c[n].v);
		 else printf("%lld\n",res+min(c[n+1].v-c[n-1].v,c[n+2].v-c[n].v));
}