UOJ Logo LFYZ Online Judge

LFYZOJ

#64. 内部闭锁数

统计

这是一道交互题。

本题支持 hack,语言仅支持 C++。使用其他语言提交,分数将得不到保证。

任务介绍

你需要实现一个函数 play(n)。这个函数的意思是这样的:

给你一个数 $n$,你要返回一个在 $[0,10^{18}]$ 之间的 long long 类型的数,使得这个数的“内部闭锁数”等于 $n$。如果没有这样的数,返回 $-1$。

什么是“内部闭锁数”呢?一个单独的数字字符,它的内部闭锁数,就是这个数写下来的闭合区域的数量。其他的数字,它的内部闭锁数是组成它的所有的数字字符的内部闭锁数之和。

数字的写法以下图为准:

pic

实现方法

你的源代码中需要包含头文件 num.h,也就是应有#include "num.h"

你需要实现的函数是

long long play(int n);

你不应该书写 main() 函数。

怎样测试你的程序

我们下发了 implementer.cppnum.h,编译命令是

g++ -o code implementer.cpp code.cpp -lm -O2 -DONLINE_JUDGE

可执行文件将从标准输入读入不定个整数。对于下发的 implementer.cpp ,我们将打印你所有的返回值以便你核查你的答案是否正确。

实际评测时使用的 implementer.cpp 和下发的是不一样的。因此,请勿自行输出任何信息,否则你的分数将得不到保证。

攻击测评系统,修改测评内容,一经发现,帐号将被封停。

输入格式

不定行,每行一个整数 $n$。

输出格式

你不需要输出,返回你的答案即可。

样例一

input

2
6

output

4214
188249

explanation

上述 output 是一个可能的你想返回的答案,你也可以返回别的合法的答案。

数据范围与约定

对于 $100\%$ 的数据,每个 $n \in [0, 1000000]$。你的 play() 函数最多被调用 $200$ 次。

保证在任何情况下,交互库所占用的时间不会超过 $1\mathrm{s}$ ,占用的空间不会超过 $64\mathrm{MB}$。因此,选手实际可用的时间至少有 $1\mathrm{s}$ ,实际可用的空间最少有 $448\mathrm{MB}$。

时间限制: $2\mathrm{s}$

内存限制: $512\mathrm{MB}$

下载内容

交互库下载

来源

改编自 cf 934b