CF2119C.A Good Problem

普及-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Juggernaut. - Lost Dream feat.星名はる

给定四个正整数 nn、ll、rr 和 kk,需要找到一个字典序最小的长度为 nn 的整数数组 aa,满足以下条件:

  • 对于每个 1≤i≤n1 \leq i \leq n,有 l≤ai≤rl \leq a_i \leq r。
  • a1 & a2 & … & an=a1⊕a2⊕…⊕ana_1 \, \& \, a_2 \, \& \, \ldots \, \& \, a_n = a_1 \oplus a_2 \oplus \ldots \oplus a_n,其中 &\& 表示按位与运算,⊕\oplus 表示按位异或运算。

如果不存在这样的数组,输出 −1-1。否则,由于整个数组可能太大而无法输出,只输出 aka_k 。

数组 aa 在字典序上小于数组 bb 当且仅当以下条件之一成立:

  • aa 是 bb 的前缀,但 a≠ba \ne b ;或者
  • 在 aa 和 bb 不同的第一个位置,数组 aa 的元素比 bb 中的对应元素小。

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 tt(1≤t≤1041 \le t \le 10^4)。每个测试用例包含四个正整数 nn、ll、rr、kk(1≤k≤n≤10181 \le k \le n \le 10^{18},1≤l≤r≤10181 \le l \le r \le 10^{18})。

输出格式

对于每个测试用例,输出 aka_k,或输出 −1-1 如果没有数组满足条件。

输入输出样例

  • 输入#1

    9
    1 4 4 1
    3 1 3 3
    4 6 9 2
    4 6 9 3
    4 6 7 4
    2 5 5 1
    2 3 6 2
    999999999999999999 1000000000000000000 1000000000000000000 999999999999999999
    1000000000000000000 1 999999999999999999 1000000000000000000

    输出#1

    4
    1
    6
    8
    -1
    -1
    -1
    1000000000000000000
    2

说明/提示

  • 在第一个测试用例中,数组 a=[4]a = [4]。可以证明没有满足上述要求且字典序更小的数组。
  • 在第二个测试用例中,数组 a=[1,1,1]a = [1, 1, 1]。可以证明没有满足上述要求且字典序更小的数组。
  • 在第三个和第四个测试用例中,数组 a=[6,6,8,8]a = [6, 6, 8, 8]。可以证明没有满足上述要求且字典序更小的数组。
  • 在第五个和第六个测试用例中,可以证明没有满足上述要求的数组。

输入解题思路,AI测评打分。不知道怎么写?

首页