#D0290. 三三音乐

三三音乐

题目描述

33DAI 最近学习了音频的数字化方法。按顺序依次为“采样、量化、编码”三个步骤,下面是相关概念的简单解释:

  • 采样:每隔一个固定的时间得到一个当前音频信息,可以认为这个信息是一个浮点数。
  • 量化:音频信息都量一下对应的刻度。
  • 编码:把每个刻度对应到一个数字代码,把所有数字代码从前往后连接就形成了音频的数字信息。
  • 采样频率:单位为赫兹(hz),表示每秒钟的采样次数,每次采样的间隔时间一样。假设采样频率为 aa hz,则表示每 1a\frac{1}{a} 秒采集一个音频信息(浮点数)。
  • 量化位数:即采用一个几位的二进制数来描述采样得到的浮点数。假设量化位数为 bb,那么量化结果的二进制整数对应的十进制范围为 02b10\sim 2^b-1。 假设音频信息(浮点数)的范围固定为 162000016\sim 20000,那么会把 162000016\sim 20000 中间平均分出来 2b12^b-1 个分界点,加上 1616 一起就构成了 2b2^b 个分界点。每个音频信息都找到小于等于它的最大的刻度值作为它的编码值。

一般来说标准的音频文件还会有多声道、以及一些压缩算法来得到更好的效果。但本题不讨论这个。

33DAI 拿到了一个采样频率为 aa 赫兹,持续 tt 秒的一共 a×ta\times t 个音频信息(浮点数),他想要把这些音频信息(浮点数)按照 bb 位的量化位数进行量化。

他使用二进制编码,把所有量化的刻度从小到大分别对应为 02b10\sim 2^b-1,每个刻度都用一个 bb 位二进制数记录,所有固定位数的二进制数从前往后连接得到最终编码结果。

请你输出最终的编码结果。

输入格式

第一行为三个整数 a,t,ba,t,b

接下来 tt 行,每行为 aa 个浮点数,即每秒的音频信息。

输出格式

一行为最终的编码结果。

5 2 3
16.8 2000 7510 15333 10008 
9000.5 15005 19999.99 15003.999 2514.01
000000011110100011110111101001

样例 1 解释

采样

每一段时间采集当前数据,得到一系列浮点数。

量化

量化位数为 33,所以分为了 23=82^3=8 段,每段间隔 (2000016)/8=2498(20000-16)/8=2498。找到对应的刻度。

编码

用对应的二进制给每个音频信号(浮点数)编码

数据规模与约定

对于 100%100\% 的数据,保证:

  • 1a441001\le a\le 44100
  • 1t3001\le t\le 300
  • 1at1051\le a*t\le 10^5
  • 1b161\le b\le 16
  • 16音频信息2000016\le 音频信息\le 20000

子任务划分:

  • 子任务 1(10 分):保证 at=1a*t=1
  • 子任务 2(20 分):保证 b=1b=1
  • 子任务 3(30 分):保证 音频信息=16音频信息 = 16
  • 子任务 4(40 分):没有特殊限制