这是一道函数式交互题。请使用合适版本的 C++ 提交,建议不要使用 C++14 (GCC 9)。
过往的场景渐渐在某些方面模糊,在另一些方面却回响得愈发清晰。
即使相处的一切在日复一日的孤独中逐渐碎散,却仍未习惯身边失落的曾经存在的温度。
当试图吟哼镌刻着良辰美景的旧曲时,才发现太久的离别已使珍惜的记念闪烁不定。
不……不能忘却……
潸然的泪织成了细密的网,隔绝着窗外静谧的春夜。
常常追忆过去。
她现在正在试图想起 为她弹奏的那首曲子。曲子可以被看做一个由 个音符组成的序列 ,索引从 开始,其中的每个音符 可以用一个非负整数来代表。
不幸的是,由于缺乏绝对音感加之离别日久,她已经忘却了每个 具体是什么,这给她的追忆旅程带来极大挑战。
然而,她仍留存着某『感觉』。感觉是一个数值,与乐段内每一个音符有关。对于一个从乐曲第 个音符开始到第 个音符结束的乐段 ,她有两种感觉:
这里,“每对”为无序对。 和
分别表示按位与运算和按位异或运算。
由于 曾经非常多次以不同的开始和结尾向 演奏曲子,所以 确信对于任意的 ,她都还记得乐段 的两种感觉。注意这个乐段的长度至少为 。
因为过度悲伤, 的 OI 水平急剧下降,无法推算还原出曲子的模样,请你帮助她!你可以向她咨询她对于一些乐段的感觉,并最后告诉她原曲每个音符是什么。
形式化地,有一个长为 的未知序列 ,定义 及 。你可以进行若干次操作,每次操作为给定 并查询 或 。你最后需要确定 的值并返回序列 。
【交互格式】
你不需要也不应该实现 main 函数。
你需要实现以下函数:
std :: vector<int> sanyueyu(int n);
- 参数 表示乐曲的长度;
- 其应该返回一个持有
int 类型的 vector,长度为 ,且该 vector 的第 个元素为 。
你可以调用如下函数:
long long ask_and(int l, int r);
long long ask_xor(int l, int r);
由于洛谷的交互机制,你应该将这些函数的原型声明在文件开头:
std :: vector<int> sanyueyu(int n);
long long ask_and(int l, int r);
long long ask_xor(int l, int r);
以下是一个您的程序可能的结构:
std :: vector<int> sanyueyu(int n);
long long ask_and(int l, int r);
long long ask_xor(int l, int r);
std :: vector<int> sanyueyu(int n){
std :: vector<int> ans;
return ans;
}