「INOH」Round 1 - 意外
题目背景
**这是一道通信题。**
**由于一些原因,本题有特殊的时空限制,且只有三个测试点。**
**您的得分是三个测试点得分的最小值。**
**请选手注意不要用 `C++14 (GCC 9)` 提交。**
题目描述
通信中的意外是不可避免的。
A 程序从交互程序获得一个长度为 $10^2$ 的数组,其元素值域为 $ \lbrack 0, 998244353 ) $,A 程序对其进行编码,即 `Encode` 操作,生成一个长度任意,元素值域为 $\lbrack 0, 998244353 )$ 的数组,然后将其返回给交互程序。
交互程序会对编码生成的数组进行如下操作:
- 对于每一个元素,有 $50\%$ 概率,将其赋成在 $ \lbrack 0, 998244353 ) $ 内的一个随机的数,有 $50\%$ 概率不变。
之后 B 程序会从交互程序获得操作后的数组,B 程序需要对其进行解码,即 `Decode` 操作,根据数组信息还原出最初 A 程序从交互程序获得的数组。
### 实现细节
由于无法实现通信,本题以交互的形式运行。
你不需要,也不应该实现主函数,你只需要实现下面两个函数
1. `vector <int> Encode ( vector <int> vec );`
- 该函数传入一个长度为 $10^2$ 的 `vector`,返回一个任意长度的 `vector`。
2. `vector <int> Decode ( vector <int> vec );`
- 该函数传入一个任意长度的 `vector`,返回一个长度为 $10^2$ 的 `vector`。
**交互库会调用 `Encode` 不超过 $3 \times 10^4$ 次,调用 `Decode` 不超过 $1 \times 10^4$ 次。**
**下发的交互库**的实现是固定的测试数据组数,随机一个数组,并立即对其 `Encode` 和 `Decode`,即仅用于简单检验程序。
使用时,你可以**直接将实现好的 `Encode` 和 `Decode` 函数放到交互库代码里**,编译运行即可。
如果交互库输出 `Illegaled operation`,你将获得 $0$ 分。可能的原因包括未还原原数组、返回的数组不合法。
否则交互库会输出一个整数,表示你的分数。
**评测交互库**不一定在 `Encode` 后立即 `Decode`,即可能会先对若干个数组进行编码,再逐一解码。
所有的数应均在 $ \lbrack 0, 998244353 ) $ 范围内。
### 评分方式
设您 `Encode` 返回的最大长度为 $Len$,则得分为 $ \min( 100, \lfloor \frac{1500}{ \lceil \frac{Len}{50} \rceil } \rfloor ) $。
输入输出格式
输入格式
无
输出格式
无