結果
| 問題 |
No.253 ロウソクの長さ
|
| コンテスト | |
| ユーザー |
fmhr
|
| 提出日時 | 2015-07-25 01:41:39 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 24 ms / 2,000 ms |
| コード長 | 511 bytes |
| コンパイル時間 | 10,968 ms |
| コンパイル使用メモリ | 228,908 KB |
| 実行使用メモリ | 25,476 KB |
| 平均クエリ数 | 37.06 |
| 最終ジャッジ日時 | 2024-07-16 20:51:07 |
| 合計ジャッジ時間 | 12,621 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 36 |
ソースコード
package main
import "fmt"
func main() {
solve()
}
func ask(x int) int {
fmt.Println("?", x)
var y int
fmt.Scan(&y)
return y
}
func solve() {
lb := -1
ub := 1000000000
if ask(99)==-1{
for i:=1; i<100; i++{
if ask(0)==0{
fmt.Println("!", i)
return
}
}
}
for i := 1; i < 100; i++ {
mid := (lb + ub) / 2
ans := ask(mid-i)
if ans == -1 {
ub = mid
}
if ans == 1 {
lb = mid
}
if ans == 0 {
fmt.Println("!", mid)
return
}
}
fmt.Println("!", lb+1)
return
}
fmhr