3115: 二进制

时间限制:1000 ms 内存限制:256 MB
上传者:
提交:28 通过:7

题目描述

有一天 $csa$ 敲代码的时候太累,趴电脑上睡着了。醒来后发现他穿越到了一个神奇的世界里面,这里的人们都用二进制计数。正当他还懵着的时候,来了个老道长。道长给他说:”年轻人,这里是计算机内部的世界,看你应该也是从电脑前穿越过来的。多年前我莫名其妙的到了这里,花了将近毕生的时间才搞明白这个事实。前段时间我偷偷潜入了 $C$ 盘,发现了从这里出去的方法,只有解出下面的谜题才可以从这里出去,可是我年纪大了,剩余的时间也不足以让我解出这道难题。就把这道题目给你,希望你可以从这里走出去“。$csa$ 还有点懵,狠狠的掐了自己一下,确定不是在做梦,当他看到题目的时候瞬间绝望了,题目是他最不擅长的二进制,他真的很想出去,希望你可以告诉他答案。
 输入 $n$ 个 整数。如果把每个数 $X$ 的二进制原码看做字符串,那么 $X$ 可以表示为一个长度为 $64$,并且仅由字符 '0' 和字符 '1' 构成的 $01$ 字符串: $x_0x_1\cdots x_{63}$,$x_0$ 表示符号位($x_0=0$ 为正数,$x_0=1$ 为负数)。例如:$8$ 可以表示成 ${\underbrace{000...000}_{60\text{个}0}}1000$,$-8$ 可以表示成 $1{\underbrace{00...000}_{59\text{个}0}}1000$。

  有 $m$ 次修改操作 $ (i, a, b)$,表示将第 $i$ 个数字的二进制原码表示中第 $a$ 位到第 $b$ 位(即 $x_a,x_{a+1},\cdots,x_{b}$)移动到 $x_{0}$ 的左侧。



$$
\begin{matrix}
  01010010\cdots {\underbrace{101001}_{[a,b]}} \cdots00100101 \\
  \\
  \Downarrow \text{将 [a,b] 区间内的数字移动到最前面} \\
  \\
  {\underbrace{101001}_{[a,b]}}01010010\cdots  \cdots00100101 \\
   \\
  \end{matrix}
$$

求最终第 $K$ 大的数字。

输入格式

第一行三个数 $n,m,k$

接下来一行有 $n$ 个数,用空格隔开

接下来 $m$ 行,每行有三个数 $i,a,b$ 。

表示将第 $i$ 个数字的二进制表示中第 $a$ 位到第 $b$ 位(即 $x_a,x_{a+1},\cdots,x_{b}$)移动到 $x_{0}$ 的左侧。

输出格式

输出最终第 $K$ 大的数字。

输入样例 复制

2 1 1
2 4
2 62 63

输出样例 复制

2

数据范围与提示