package main import ( "bufio" "fmt" "os" "strconv" ) func main() { for { // 大数据读入时,性能比较高 scanner := bufio.NewScanner(os.Stdin) // 设置大缓冲区,防止大输入时出错 buf := make([]byte, 1024*1024) // 1MB scanner.Buffer(buf, 1024*1024) scanner.Split(bufio.ScanWords) // 按单词扫描(空格、换行等分隔) // 读取第一行:n scanner.Scan() n, _ := strconv.Atoi(scanner.Text()) if n == 0 { break } arr1 := make([]int, n) for i := 0; i < n; i++ { scanner.Scan() arr1[i], _ = strconv.Atoi(scanner.Text()) } scanner.Scan() n2, _ := strconv.Atoi(scanner.Text()) if n2 == 0 { break } arr2 := make([]int, n2) for i := 0; i < n2; i++ { scanner.Scan() arr2[i], _ = strconv.Atoi(scanner.Text()) } i, j := 0, 0 for i < len(arr1) && j < len(arr2) { if arr1[i] < arr2[j] { i++ } else if arr1[i] > arr2[j] { j++ } else { fmt.Printf("%d ", arr1[i]) i++ j++ } } fmt.Println() } }