#include #include #include #include #include #include using namespace std; int a[1020]; int b[1020]; int ans1, ans2; //int ans; int get_gcd(int x,int y){ if(x < y)swap(x,y); while(x % y > 0){ int k = x % y; x = y; y = k; } return y; } void get_ans(int x){ if(a[x] == 0 && b[x] == 0){ get_ans(x-1); return; } if(a[x] == 0){ ans1 = 0; ans2 = 1; return; }else if(b[x] == 0){ ans1 = 1; ans2 = 0; }else{ int y = get_gcd(a[x], b[x]); ans1 = a[x] / y; ans2 = b[x] / y; } } int main(){ int T; scanf("%d",&T); for(int ii=1;ii<=T;++ii){ int n; scanf("%d",&n); for(int i=1;i<=n;++i){ scanf("%d%d",&a[i], &b[i]); } int ans = 0; int nowL = a[1]; int nowR = b[1]; int now; for(now = 2; now <= n; ++now){ if(nowL > b[now] || nowR < a[now]){ break; }else{ nowL = max(nowL, a[now]); nowR = min(nowR, b[now]); } }//choose start int now_wz = 0; if(now <= n){ if(nowL > a[now]) now_wz = nowL;else now_wz = nowR; } for(;now<=n;++now){ if(now_wz > b[now]){ int distance = abs(now_wz - b[now]); if(now < n && (distance % 2 == 1) && a[now] < b[now]){ int p = now + 1; while(p <= n){ if(b[now] <= b[p] && b[now] >= a[p]) ++ p; else break; } if(p <= n && b[p] < b[now]) ++ distance; } ans += (distance + 1) / 2; now_wz = now_wz - distance; }else if(now_wz < a[now]){ int distance = abs(now_wz - a[now]); if(now < n && (distance % 2 == 1) && a[now] < b[now]){ int p = now + 1; while(p <= n){ if(a[now] <= b[p] && a[now] >= a[p]) ++ p; else break; } if(p <= n && a[p] > a[now]) ++ distance; } ans += (distance + 1) / 2; now_wz = now_wz + distance; } } cout << ans << endl; } return 0; }