結果
問題 | No.3 ビットすごろく |
ユーザー |
|
提出日時 | 2020-04-17 12:26:13 |
言語 | Go (1.23.4) |
結果 |
WA
|
実行時間 | - |
コード長 | 813 bytes |
コンパイル時間 | 11,780 ms |
コンパイル使用メモリ | 222,776 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-03 10:12:55 |
合計ジャッジ時間 | 12,760 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 31 WA * 2 |
ソースコード
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 break } 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 }