← Home
package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
)

func upperBound(a []int, x int) int {
	l, r := 0, len(a)
	for l < r {
		m := l + (r-l)/2
		if a[m] > x {
			r = m
		} else {
			l = m + 1
		}
	}
	return l
}

func lowerBound(a []int, x int) int {
	l, r := 0, len(a)
	for l < r {
		m := l + (r-l)/2
		if a[m] >= x {
			r = m
		} else {
			l = m + 1
		}
	}
	return l
}

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	var t int
	if _, err := fmt.Fscan(reader, &t); err != nil {
		return
	}

	for tc := 0; tc < t; tc++ {
		var n int
		fmt.Fscan(reader, &n)

		L := make([]int, n)
		R := make([]int, n)
		lOrig := make([]int, n)
		rOrig := make([]int, n)

		for i := 0; i < n; i++ {
			fmt.Fscan(reader, &L[i], &R[i])
			lOrig[i] = L[i]
			rOrig[i] = R[i]
		}

		sort.Ints(L)
		sort.Ints(R)

		minDeleted := n
		for i := 0; i < n; i++ {
			left := lowerBound(R, lOrig[i])
			right := n - upperBound(L, rOrig[i])

			deleted := left + right
			if deleted < minDeleted {
				minDeleted = deleted
			}
		}

		fmt.Fprintln(writer, minDeleted)
	}
}