题目描述
33DAI 最近学习了音频的数字化方法。按顺序依次为“**采样、量化、编码**”三个步骤,下面是相关概念的简单解释:
- **采样**:每隔一个固定的时间得到一个当前音频信息,可以认为这个信息是一个浮点数。
- **量化**:音频信息都量一下对应的刻度。
- **编码**:把每个刻度对应到一个数字代码,把所有数字代码从前往后连接就形成了音频的数字信息。
- **采样频率**:单位为赫兹(hz),表示每秒钟的采样次数,每次采样的间隔时间一样。假设采样频率为 $a$ hz,则表示每 $\frac{1}{a}$ 秒采集一个音频信息(浮点数)。
- **量化位数**:即采用一个几位的二进制数来描述采样得到的浮点数。假设量化位数为 $b$,那么量化结果的二进制整数对应的十进制范围为 $0\sim 2^b-1$。
假设音频信息(浮点数)的范围固定为 $16\sim 20000$,那么会把 $16\sim 20000$ 中间平均分出来 $2^b-1$ 个分界点,加上 $16$ 一起就构成了 $2^b$ 个分界点。每个音频信息都找到小于等于它的最大的刻度值作为它的编码值。
一般来说标准的音频文件还会有多声道、以及一些压缩算法来得到更好的效果。但本题不讨论这个。
33DAI 拿到了一个采样频率为 $a$ 赫兹,持续 $t$ 秒的一共 $a\times t$ 个音频信息(浮点数),他想要把这些音频信息(浮点数)按照 $b$ 位的量化位数进行量化。
他使用二进制编码,把所有量化的刻度从小到大分别对应为 $0\sim 2^b-1$,每个刻度都用一个 $b$ 位二进制数记录,所有固定位数的二进制数从前往后连接得到最终编码结果。
请你输出最终的编码结果。
输入
第一行为三个整数 $a,t,b$。
接下来 $t$ 行,每行为 $a$ 个浮点数,即每秒的音频信息。
输出
一行为最终的编码结果。
样例输入输出
输入#1
复制
5 2 3
16.8 2000 7510 15333 10008
9000.5 15005 19999.99 15003.999 2514.01
输出#1
复制
000000011110100011110111101001
提示
【样例 1 解释】
### 采样
每一段时间采集当前数据,得到一系列浮点数。
![](/upload/image/20240914/204349_51113.png)
### 量化
量化位数为 $3$,所以分为了 $2^3=8$ 段,每段间隔 $(20000-16)/8=2498$。找到对应的刻度。
![](/upload/image/20240914/204401_80120.png)
### 编码
用对应的二进制给每个音频信号(浮点数)编码
![](/upload/image/20240914/204414_85675.png)
【数据规模与约定】
对于 $100\%$ 的数据,保证:
- $1\le a\le 44100$
- $1\le t\le 300$
- $1\le a*t\le 10^5$
- $1\le b\le 16$
- $16\le 音频信息\le 20000$。
子任务划分:
- 子任务 1(10 分):保证 $a*t=1$。
- 子任务 2(20 分):保证 $b=1$
- 子任务 3(30 分):保证 $音频信息 = 16$
- 子任务 4(40 分):没有特殊限制