結果
| 問題 |
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
}