#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<vector>
#include<climits>
#define ll long long
using namespace std;
const int N = 1e6 + 10;
vector<pair<ll, ll>>s;
ll a[N],b[N];
int main() {
	int t;
	scanf("%d", &t);
	while (t--) {
		int n;
		scanf("%d", &n);
		for (int i = 1; i <= n; ++ i) {
			scanf("%lld%lld", &a[i], &b[i]);
}
		ll sum = 0;
		ll mi;
		if (a[1] > b[n]) {
			sum = a[1] - b[n];
			a[1] = b[n];
		}
			mi = a[1];
		for(int i=2;i<=n;++i){
					if(a[i]>b[i-1]){  
						 if(a[i]>b[i-1]) sum+=a[i]-b[i-1]; 
						 a[i]=b[i-1];
					}
					if(a[i]<mi) mi=a[i];  
				}
		printf("%lld\n", mi + sum);
	}
	return 0;
}
每个怪兽有两种死亡方式,第一种是直接被打死,第二种是被上一个怪兽炸死。所以,第二种方式的性价比更高。因此,我们可以将怪兽血量都控制在能被上一个怪兽炸死的范围内,在取所有怪兽中血量最少的打死即可。