結果
問題 |
No.2929 Miracle Branch
|
ユーザー |
![]() |
提出日時 | 2025-03-19 12:35:54 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 305 ms / 2,000 ms |
コード長 | 895 bytes |
コンパイル時間 | 11,351 ms |
コンパイル使用メモリ | 238,428 KB |
実行使用メモリ | 10,016 KB |
最終ジャッジ日時 | 2025-03-19 12:36:18 |
合計ジャッジ時間 | 23,100 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 43 |
ソースコード
package main import . "fmt" func main() { var x int64 Scan(&x) if x == 1 { Println(2) Println(1, 2) Println("b g") return } ps := []int64{} var cnt int64 for x % 2 == 0 { if len(ps)>0&&ps[len(ps)-1] == 2 { ps[len(ps)-1]+=2 cnt += 2 } else { ps = append(ps, 2) cnt += 3 } x /= 2 } for i := int64(3); i<=x&&i<2e5 ; i+= 2 { if x % i != 0 { continue } for x % i == 0 { ps = append(ps, i) x /= i cnt += i+1 } if cnt > 2e5 { Println(-1) return } } if x > 1 { if cnt + x+1 > 2e5 { Println(-1) return } ps = append(ps, x) cnt += x+1 } Println(cnt) bg := make([]any, 0, cnt) var prev, id int64 for _, p := range ps { id++ if prev > 0 { Println(prev, id) } bg = append(bg, "b") for i := int64(1); i <= p; i++ { Println(id, id+i) bg = append(bg, "g") } prev, id = id, id+p } Println(bg...) }