問題一覧 > 通常問題

No.3102 floor sqrt xor

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 48
作問者 : shobonvip / テスター : noya2
3 ProblemId : 11576 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-04-11 21:21:00

問題文

非負整数 NN が与えられます。非負整数 kk であって、 kk=N\lfloor \sqrt{k} \rfloor \oplus k = N となるものがあるかどうか判定し、あれば 11 つ見つけてください。

ただし、 \oplus は bitwise xor を表すとします。また、実数 xx に対して x\lfloor x \rfloor は、 xx を超えない最大の整数を表すものとします。たとえば 3.14=3,4=4\lfloor 3.14 \rfloor = 3, \lfloor 4 \rfloor = 4 となります。

TT 個のテストケースが与えられるので、それぞれについて解いてください。

制約

  • 入力はすべて整数
  • 1T1001 \le T \le 100

各テストケースに対して、

  • 0N<2600 \le N \lt 2^{60}

入力

TT
case1\text{case}_1
case2\text{case}_2
\vdots
caseT\text{case}_T
ここで、 casei\text{case}_i (1iT)(1\le i \le T)ii 番目のテストケースを表す。各テストケースは以下の形式で与えられる。
NN

出力

TT 行出力せよ。 ii (1iT)(1\le i\le T) 行目には、 ii 番目のテストケースの NN について、kk=N\lfloor \sqrt{k} \rfloor \oplus k = N となる非負整数 kk がある場合は kk の値を 11 つ出力し、そのような非負整数 kk がない場合は -1 を出力せよ。

サンプル

サンプル1
入力
8
1
2
10
0
11
12
998244353
1152921504606846975
出力
-1
3
9
0
-1
15
998275946
1152921503533105152

11 個目のケースについて、 kk=1\lfloor \sqrt{k} \rfloor \oplus k = 1 を満たす非負整数は存在しません。

22 個目のケースについて、 33=13=2\lfloor \sqrt{3} \rfloor \oplus 3 = 1 \oplus 3 = 2 であるので、 33 を出力します。

33 個目のケースについて、 kk=10\lfloor \sqrt{k} \rfloor \oplus k = 10 を満たす非負整数は k=8k=8k=9k=922 つが存在しますが、どちらを出力してもよいです。

44 個目のケースについて、 kk=0\lfloor \sqrt{k} \rfloor \oplus k = 0 を満たす非負整数は k=0k=0k=1k=122 つが存在しますが、どちらを出力してもよいです。

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