結果
問題 |
No.47 ポケットを叩くとビスケットが2倍
|
ユーザー |
![]() |
提出日時 | 2025-01-24 01:39:41 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 484 bytes |
コンパイル時間 | 12,467 ms |
コンパイル使用メモリ | 243,320 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2025-01-24 01:40:00 |
合計ジャッジ時間 | 13,712 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
package main import . "fmt" var m = make(map[int]int) func f(c, n int) { if cc, ok := m[n]; !ok || c < cc { m[n] = c } for i:=1; i<=n ;i++ { if c < 10 && n+i <20 { f(c+1,n+i) } } } func show20() { f(0, 1) for v,c := range m { Printf("v=%d (%b), c=%d\n", v,v,c) } } func main() { var n int Scan(&n) var x, c int x = 1 for x * 2 <= n { x *= 2 c++ } d := n - x if d != 0 { x -= d x += (d * 2) c++ } if x != n { panic("bug?") } Println(c) }