結果
問題 | No.3 ビットすごろく |
ユーザー |
|
提出日時 | 2020-04-17 12:22:52 |
言語 | Go (1.23.4) |
結果 |
WA
|
実行時間 | - |
コード長 | 815 bytes |
コンパイル時間 | 11,543 ms |
コンパイル使用メモリ | 220,492 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-03 10:12:37 |
合計ジャッジ時間 | 12,967 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 WA * 3 |
ソースコード
package main import ( "bufio" "fmt" "os" "strconv" ) var sc = bufio.NewScanner(os.Stdin) func Scanner() string { sc.Scan() return sc.Text() } func main() { buf := make([]byte, 0) sc.Buffer(buf, 100000007) sc.Split(bufio.ScanWords) n, _ := strconv.Atoi(Scanner()) trans := make(map[int]int) fer := []int{1} ans := -1 for i, j := 1, []int{}; len(fer) > 0; i, fer, j = i+1, j, nil { for _, k := range fer { if k == n { ans = i continue } else if trans[k] == 0 { trans[k] = 1 dis := count(k) m := k + dis l := k - dis if m <= n { j = append(j, m) } if l > 0 { j = append(j, l) } } } } fmt.Println(ans) } func count(k int) int { str := fmt.Sprintf("%b", k) c := 0 for _, s := range str { if s == '1' { c += 1 } } return c }