#298. 【NFLSPC #1】Quine Remastered

题目类型:其它类型 时间限制:500 ms 空间限制:256 MiB
输入文件:标准输入 输出文件:标准输出 答案检查器:Special Judge

Quine 是一个经典的代码谜题:它要求你写一个可以输出自身的程序。其中一个 C++ 的解法如下:

#include<cstdio>
char s[]="#include<cstdio>%cchar s[]=%c%s%c;int main(){printf(s,10,34,s,34);}";int main(){printf(s,10,34,s,34);}

现在你需要完成如下两个任务,各占本题 $50\%$ 的分值:

  • 你的程序需要读入一个整数 $n (0 \leq n \leq 10)$,并输出自身 $n$ 次。
  • 你的程序需要倒序输出自身。

你将提交两个程序 quine_nquine_rev 分别完成两个任务。每个程序应该至少有 $10$ 个可见字符,并不超过 $5\ \texttt{KB}$。

如果一个程序为空,则仅这个任务不得分。


输入格式

  • 对于 quine_n:一个整数 $n$,表示你的程序将输出自身的次数。
  • 对于 quine_rev:无输入。

输出格式

  • 对于 quine_n:程序自身的 $n$ 次复制。
  • 对于 quine_rev:程序自身的倒序。

样例

显然这些样例只是为了说明你应该输出什么。样例中的 code 既没有至少 $10$ 个可见字符,也不能在 OJ 支持的语言中运行。

quine_n
code
abc
def
input
3
output
abc
def
abc
def
abc
def
quine_rev
code
abc
def
ghi
output
ihg
fed
cba

注意

在本题的评测中,所有评测均会以行为单位进行,即评测程序会读取你的程序、你的输出的每一行,进行适当操作后进行比对。 这意味着无论对于你的程序或者输出,结尾处有没有一个换行符是无关紧要的,即使结尾处没有换行符,最后一行也会单独当作一行来计算。

所以

  • 对于第一个任务,即使你的程序末尾没有换行符,你也不应该将一次输出的最后一行和下一次输出的第一行合并为一行。
  • 对于第二个任务,即使你的程序末尾有换行符,你也不需要在开头输出一个空行。

保险起见,你最好不要在程序开头留有空行,也不要在程序结尾留有多于一行空行。注意某些 IDE 和编辑器(如 Dev-C++)会自动在你的文件最后一行末尾加上一个换行符。


限制与约定

时间限制:$500\ \texttt{ms}$

空间限制:$256\ \texttt{MB}$


其他

你可以在自定义测试中检测你的程序,其中 input.txtquine_n 的输入。为了大家的比赛体验,请不要使用过多次数以导致评测机拥堵。


$by\ \text{TRCYX}$