問題一覧 > 教育的問題

No.3521 接線の傾き

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / リアクティブ問題 (詳しくはこちら
タグ : / 解いたユーザー数 26
作問者 : 👑 p-adic / テスター : t9unkubj
ProblemId : 10962 / yukicoder contest 498 リアクティブコンテスト (順位表) / 自分の提出
問題文最終更新日: 2024-10-01 23:32:40
yukicoder contest 498 リアクティブコンテストの他の問題:

問題文

この問題はリアクティブ形式の(ジャッジ側のプログラムと対話的に実行する必要がある)問題です。

 

最初に非負整数 $D$ が与えられます。

 

接線大好きbot接線が大好きなbotです。

接線大好きbotは零多項式でない $D$ 次の非負整数係数多項式 $f(x)$ を隠し持っており、等式 $y = f(x)$ が定める $xy$ 平面内の曲線を $C$ と置きます。

 

接線大好きbotは曲線 $C$ の接線の傾きとしてありえる整数を $1$ つ知りたがっています。

そこで、あなたは次のやり取り(以下、質問と呼ぶ)を $0$ 回以上 $10$ 回以下の好きな回数行います。

  1. まずあなたが条件 $0 \leq n \leq 10^2$ を満たす整数 $n$ を $1$ つ選び、$f(x)$ の $n$ での値 $f(n)$ を尋ねる。
  2. 続いて接線大好きbotが $f(n)$ を答える。

その後、非負実数 $x_0$ を条件 $0 \leq x_0 \leq 10^2$ の下で動かした時に曲線 $C$ の点 $(x_0,f(x_0))$ における接線の傾き $f'(x_0)$ としてあり得る整数が存在するか否かを判定し、存在するならばそのような整数を $1$ つ求めてください。

入出力

最初に $D$ が標準入力から $1$ 行で与えられます。

$D$

その後で $0$ 回以上 $10$ 回以下の好きな回数、質問をしてください。各質問は標準入出力を用いて以下の形式で行います:

  1. まず?と条件 $0 \leq n \leq 10^2$ を満たす整数 $n$ を半角空白区切りで $1$ 行で出力してください。
  2. ? $n$
    
  3. 続いて $f(n)$ の値が $1$ 行で与えられます。
  4. $f(n)$
    

次にあなたはこの問題に対する答えを標準出力に以下の形式で出力してください:

  • 非負実数 $x_0$ を条件 $0 \leq x_0 \leq 10^2$ の下で動かした時に曲線 $C$ の点 $(x_0,f(x_0))$ における接線の傾き $f'(x_0)$ としてあり得る整数が存在するならば、そのような値の一例を $c$ と置き、! と $c$ を半角空白区切りで $1$ 行に出力してください。
  • ! $c$
    
  • 存在しないならば、!NaNを $1$ 行に出力してください。
  • ! NaN
    

最後に改行してください。

制約

入力では与えられませんが、$f(x)$ は以下を満たします:

  • $f(x)$ は零多項式でない $D$ 次の非負整数係数多項式として全ての質問の前に固定されており、すなわち質問の前後で変化しない。
  • $D$ 以下の任意の非負整数 $d$ に対し、$f(x)$ の $d$ 次係数 $f_d$ は以下を満たす整数である。
    • $d < D$ ならば、$0 \leq f_d < 10^2$ である。
    • $d = D$ ならば、$0 < f_d < 10^2$ である。

入力は以下の制約を満たします:

  • $D$ は $0 \leq D < 10^2$ を満たす整数である。
  • 条件 $0 \leq n \leq 10^2$ を満たす任意の整数 $n$ に対し、$f(x)$ の $n$ での値を尋ねた時の返答である入力 $f(n)$ は $0 \leq f(n) < 10^{2(D+1)}$ を満たす整数である。

なお $D = 99$ の時の $f(10^2)$ の上限値は $10^{200} - 1$ であり、64bit整数に収まらないことにご注意ください。

注意

リアクティブ形式の問題に慣れてない方は、リアクティブ形式の問題についてのまとめも参考にしてください。

この問題において、以下の指示に従っていない提出のジャッジ結果は保証しません:

  • 出力は指定された形式に厳格に従ってください。例えば余計な空白を入れたりしないでください。
  • 出力を行うたびに末尾に改行を入れて標準出力をflushしてください。
  • この問題に対する答えを出力した後はプログラムをすぐに終了させてください。

サンプル

以下は $f(x) = 1 + x + 2x^2$ である場合の入出力の一例です。

入力 出力 説明
2
$D = 2$ が入力で与えられました。これにより $f(x)$ が $2$ 次であることが確定します。
? 0
あなたは $f(0)$ の値を尋ねました。
1
接線大好きbotは $f(0) = 1 + 0 + 2 \cdot 0^2$ が $1$ であると答えました。
? 1
あなたは $f(1)$ の値を尋ねました。
4
接線大好きbotは $f(1) = 1 + 1 + 2 \cdot 1^2$ が $4$ であると答えました。
? 2
あなたは $f(2)$ の値を尋ねました。
11
接線大好きbotは $f(2) = 1 + 2 + 2 \cdot 2^2$ が $11$ であると答えました。
? 3
あなたは $f(3)$ の値を尋ねました。
22
接線大好きbotは $f(3) = 1 + 3 + 2 \cdot 3^2$ が $22$ であると答えました。
! 2
あなたは非負実数 $x_0$ を条件 $0 \leq x_0 \leq 10^2$ の下で動かした時に曲線 $C$ の点 $(x_0,f(x_0))$ における接線の傾き $f'(x_0)$ としてあり得る整数として $2$ を答えました。実際 $f'(x) = 4x+1$ であり、例えば $x_0 = 4^{-1}$ と定めると $0 \leq x_0 \leq 10^2$ かつ $f'(x_0) = 2$ が成り立ちます。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。