KUPC 2025 (Open) 2026/03/28 09:00 ~ 2026/03/28 14:00 5:00:00.000

C Partition AND/OR Aggregation

問題
制限時間: 5 sec メモリ制限: 1024 MB
Partition AND/OR Aggregation
Statement

長さ\(N\)の正整数列 \((A_1,\ldots,A_N)\) が与えられます。 この数列 \(A\) を、\(M\) 個の連続する空でない部分列 \(B_1,B_2,\ldots,B_M\) に分割することを考えます。

部分列 \(B=(A_L,\ldots,A_R)\) のスコアを \[S(B) = \dfrac{A_L \mathbin{\mathrm{and}} A_{L+1} \mathbin{\mathrm{and}} \cdots \mathbin{\mathrm{and}} A_R}{A_L \mathbin{\mathrm{or}} A_{L+1} \mathbin{\mathrm{or}} \cdots \mathbin{\mathrm{or}} A_R}\] で定めます。ここで、\(x \mathbin{\mathrm{and}} y, \ x \mathbin{\mathrm{or}} y\) はそれぞれ \(x\) と \(y\) のビット単位AND、ビット単位ORを表します。

ある分割を決めたとき、各部分列のスコアとして \(M\) 個の値 \(S(B_1),\ldots,S(B_M)\) が得られますが、これらの値を降順に並べたときの \(K\) 番目の値を、分割のスコアとして定めます。 すべての分割を考えるとき、分割のスコアとしてあり得る最大値と最小値を求めてください。

Input

\(1\) 行目に整数 \(N, M, K\) がこの順で与えられる。 (\(1 \leq K \leq M \leq N \leq 10^5\))

\(2\) 行目に \(N\) 個の整数 \(A_1,\ldots,A_N\) がこの順で与えられる。 (\( 1 \leq A_i \lt 2^{30} \ (1 \leq i \leq N)\))

Output

\(2\) 行出力せよ。

最大値、最小値をそれぞれ\( \dfrac{p}{q}, \ \dfrac{r}{s} \ (p,r \geq 0, \ q,s \geq 1, \gcd(p,q) = \gcd(r,s) = 1)\)としたとき、 \(1\) 行目には \(p,q\) を、 \(2\) 行目には \(r,s\) を、この順で空白区切りで出力せよ。

Examples

Input 1
5 3 3
6 5 7 3 2
Output 1
2 3
1 7
Input 2
5 1 1
3 1 4 1 5
Output 2
0 1
0 1
Input 3
9 5 3
998 244 353 469 762 49 754 974 721
Output 3
1 1
208 1023

Note

\(1\) つ目のケースについて、\(B_1 = (6), \ B_2 = (5, 7), \ B_3 = (3, 2)\) と選ぶと、\(S(B_1) = 1, \ S(B_2) = \dfrac{5}{7}, \ S(B_3) = \dfrac{2}{3}\) であり、これらを降順に並べたときの \(3\) 番目の値は \(\dfrac{2}{3}\) です。

また、\(B_1 = (6), \ B_2 = (5,7,3), \ B_3 = (2)\) と選ぶと、\(S(B_1) = 1, \ S(B_2) = \dfrac{1}{7}, S(B_3) = 1\) であり、これらを降順に並べたときの \(3\) 番目の値は \(\dfrac{1}{7}\) です。

非負整数 \(x,y\) のビット単位 AND \(x \mathbin{\mathrm{and}} y\)、ビット単位OR \(x \mathbin{\mathrm{or}} y\) は以下のように定義されます。

  • \(x \mathbin{\mathrm{and}} y\)を二進表記した際の \(2^k \ (k \geq 0)\) の位の数は、\(x,y\) を二進表記した際の \(2^k\) の位の数のうち両方が \(1\) であれば \(1\)、そうでなければ \(0\) である。
  • \(x \mathbin{\mathrm{or}} y\)を二進表記した際の \(2^k \ (k \geq 0)\) の位の数は、\(x,y\) を二進表記した際の \(2^k\) の位の数のうち少なくとも片方が \(1\) であれば \(1\)、そうでなければ \(0\) である。
例えば、\(3 \mathbin{\mathrm{and}} 5 = 1, \ 3 \mathbin{\mathrm{or}} 5 = 7\)となります(二進表記すると \(011 \mathbin{\mathrm{and}} 101 = 1, \ 011 \mathbin{\mathrm{or}} 101 = 111\) )。