結果
問題 | No.5020 Averaging |
ユーザー |
![]() |
提出日時 | 2024-10-21 10:22:02 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 4 ms / 1,000 ms |
コード長 | 1,269 bytes |
コンパイル時間 | 11,485 ms |
コンパイル使用メモリ | 233,804 KB |
実行使用メモリ | 6,824 KB |
スコア | 12,719,802 |
最終ジャッジ日時 | 2024-10-21 10:22:16 |
合計ジャッジ時間 | 13,888 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 50 |
ソースコード
package mainimport . "fmt"const X=5e17func abs(a int64) int64 {if a<0 {return -a}return a}func max(a,b int64) int64 {if a<b {return b}return a}func main() {var n intScan(&n)a:=make([]int64,n,n)b:=make([]int64,n,n)for i:=range a {Scan(&a[i],&b[i])}u:=[]int{}v:=[]int{}for q:=0;q<10;q++ {f:=make([]bool,n+1,n+1)f[0]=truefor i:=len(u);q>0&&i<50;i++ {best:=int64(X)*2t:=-1for k:=1;k<n;k++ {aa:=(a[0]+a[k])/2bb:=(b[0]+b[k])/2s:=max(abs(aa-X),abs(bb-X))if s<best {best=st=k}}if t>0 {f[t]=trueu=append(u,1)v=append(v,t+1)aa:=(a[0]+a[t])/2bb:=(b[0]+b[t])/2a[0],b[0]=aa,bba[t],b[t]=aa,bb} else {break}}for i:=len(u);i<50;i++ {best :=int64(X+X)t1,t2:=-1,-1for k:=range a {if f[k] {continue}for h:=range a {if k==h||f[h] {continue}aa:=(a[k]+a[h])/2bb:=(b[k]+b[h])/2s:=max(abs(aa-X),abs(bb-X))if s<best {best,t1,t2=s,k,h}}}if t1 <0 {break} else {u=append(u,t1+1)v=append(v,t2+1)aa:=(a[t1]+a[t2])/2bb:=(b[t1]+b[t2])/2a[t1],b[t1]=aa,bba[t2],b[t2]=aa,bb}}}Println(len(u))for i,e:=range u {Println(e,v[i])}}