package main import . "fmt" const ALPHA = 5 func dist(a,b []int, i int, c,d []int, j int) int { dx := a[i] - c[j] dy := b[i] - d[j] return dx*dx + dy*dy } func main() { var n, m int Scan(&n, &m) a := make([]int, n) b := make([]int, n) for i := range a { Scan(&a[i],&b[i]) } c := make([]int, m) d := make([]int, m) for i := range c { c[i] = (i%3+1)*250 d[i] = (i/3+1)*250 } t := []int{1} r := []int{1} for i := 0; i < n; i++ { next := (i+1)%n best := ALPHA*ALPHA*dist(a,b,i,a,b,next) st := -1 for j := 0; j < m; j++ { tmp := ALPHA*dist(a,b,i,c,d,j) + ALPHA*dist(c,d,j,a,b,next) if tmp < best { best = tmp st = j } } if st < 0 { t = append(t, 1) r = append(r, next+1) } else { t = append(t, 2, 1) r = append(r, st+1, next+1) } } for i := range c { Println(c[i], d[i]) } Println(len(t)) for i := range t { Println(t[i], r[i]) } }