评测时,你只需在 OJ 上提交你的源程序,修改下发的其他文件不会对评测结果产生影响。
本题首先会受到和传统题相同的限制,例如编译错误会导致整道题目得 分,运行时错误、超过时间限制、超过空间限制等会导致相应测试点得 分等。你只能访问自己定义的和交互库给出的变量及其对应的内存空间,尝试访问其他空间将可能导致编译错误或运行错误。
对于每个子任务,如果你的程序有以下行为,将会被判为 分:
pigeon_num
函数的返回值不在 之内;
send
函数的返回值的长度不等于 pigeon_num
函数的返回值;
send
函数的返回值的内容包含 0
或 1
之外的字符;
receive
函数没有正确地返回小 E 发送的信息内容。
此外,对于每个子任务,你的得分与小 E 放飞的鸽子的数量,即 pigeon_num
函数的返回值有关。设这个值为 。
在子任务 中,如果 ,那么你就能得到该测试点的满分,否则得到零分。
在子任务 中,同一个子任务中所有测试点的 的值相同,且编号越大的子任务中 的值越大。设 为一个关于 的函数,则
- 如果 ,那么你可以得到该测试点的满分。
- 若 ,那么在此范围内 的值每多 ,你就会失去该测试点满分乘以 的分数。
- 若 ,那么在此范围内 的值每多 ,你就会额外失去该测试点满分乘以 的分数。
- 若 ,那么在此范围内 的值每多 ,你就会额外失去该测试点满分乘以 的分数。
- 若你的答案正确,你至少可以得到 分。
换句话说,你在一个测试点的得分等于 ,其中 是一个关于 的分段线性函数,满足:
- 两个拐点的横坐标分别为 和 。
- 被两个拐点分割所形成的三段区间的斜率依次为 , 和 。
你的每个子任务的得分是子任务中所有测试点得分的最小值。
的函数值由下表给出。在下表中未出现的 值不会出现在子任务 的测试数据中。