結果

問題 No.2357 Guess the Function
ユーザー ynm3nynm3n
提出日時 2023-06-23 22:53:57
言語 Go
(1.22.1)
結果
WA  
実行時間 -
コード長 752 bytes
コンパイル時間 11,240 ms
コンパイル使用メモリ 228,296 KB
実行使用メモリ 25,604 KB
平均クエリ数 3.00
最終ジャッジ日時 2024-07-01 02:40:25
合計ジャッジ時間 12,356 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 24 ms
24,812 KB
testcase_01 WA -
testcase_02 AC 22 ms
25,220 KB
testcase_03 AC 23 ms
24,836 KB
testcase_04 AC 23 ms
24,964 KB
testcase_05 WA -
testcase_06 WA -
testcase_07 AC 22 ms
24,836 KB
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

package main

import "fmt"

func main() {
	sieve := sieveOfEratosthenes(200)

	fmt.Println("?", 1)
	var c int
	fmt.Scan(&c)
	switch c {
	case 0:
		fmt.Println("?", 100)

		var d int
		fmt.Scan(&d)
		a, b := d, d+1
		fmt.Println("!", a, b)
	default:
		a := c - 1
		var y int
		for x := len(sieve) - 1; ; x-- {
			if !sieve[x] {
				continue
			}
			if x-a > 100 {
				continue
			}
			y = x - a
			break
		}
		fmt.Println("?", y)

		var d int
		fmt.Scan(&d)
		b := (a + y) - d
		fmt.Println("!", a, b)
	}
}

func sieveOfEratosthenes(n int) []bool {
	bs := make([]bool, n+1)
	for i := 2; i < len(bs); i++ {
		bs[i] = true
	}
	for p := 2; p <= n; p++ {
		if !bs[p] {
			continue
		}
		for x := p * p; x <= n; x += p {
			bs[x] = false
		}
	}
	return bs
}
0