結果
問題 | No.5007 Steiner Space Travel |
ユーザー |
![]() |
提出日時 | 2025-01-29 02:44:42 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 6 ms / 1,000 ms |
コード長 | 1,288 bytes |
コンパイル時間 | 11,919 ms |
コンパイル使用メモリ | 236,740 KB |
実行使用メモリ | 6,820 KB |
スコア | 2,668,438 |
最終ジャッジ日時 | 2025-01-29 02:44:56 |
合計ジャッジ時間 | 13,579 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
package mainimport . "fmt"const ALPHA = 5func 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 intScan(&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)*250d[i] = (i/3+1)*250}t := []int{1}r := []int{1}for i := 0; i < n; i++ {next := (i+1)%nbest := ALPHA*ALPHA*dist(a,b,i,a,b,next)st1 := -1st2 := -1for 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 = tmpst1 = jst2 = -1}}for j := 0; j < m; j++ {for k := 0; k < m; k++ {if j == k {continue}tmp := ALPHA*dist(a,b,i,c,d,j) +dist(c,d,j,c,d,k) +ALPHA*dist(c,d,k,a,b,i)if tmp < best {best = tmpst1 = jst2 = k}}}if st1 < 0 {t = append(t, 1)r = append(r, next+1)} else if st2 < 0 {t = append(t, 2, 1)r = append(r, st1+1, next+1)} else {t = append(t, 2, 2, 1)r = append(r, st1+1, st2+1, next+1)}}for i := range c {Println(c[i], d[i])}Println(len(t))for i := range t {Println(t[i], r[i])}}