Meta-Loopless Sorts

题意翻译

在本题中,你需要写一个生成排序程序的程序(元排序)。输出是一个合法的Pascal程序,不使用循环地排序n个数。它必须含有以下属性: (1)它们必须由program sort(input,output);开始 (2)它们必须声明恰好n个integer变量,而且它们的名字必须是字母表的前n个字母。 (3)必须使用单独的一个readln读入所有这些变量。 (4)除了writeln以外,程序的其余部分必须只包含if then else语句。每个if语句的布尔条件必须有一个严格不等号("<"或">")来比较两个整数。必须恰好有n!条writeln语句。 (5)程序中必须恰好有三个分号: 1. 在program sort(input,output);的最后 2. 在定义变量... : integer; 的最后 3. 在readln之后:readln(...); (6)程序中不能出现多余的比较。比如,如果已经比较了a<b,就不应再比较a,b。 (7)每个writeln语句必须单独出现在一行。 (8)所输出的程序必须能通过编译。所输出的程序应以任意n个整数作为输入,输出其排序后的结果。 对于那些不习惯Pascal的语法的人,可以看看样例。 输入:第一行输入一个数m,表示有m组输入数据;下面m行每行有一个数n,表示要输出能排序n个数的程序。在两组数据之间有空行。 输出:m个能通过编译的标准pascal程序,符合上面描述的性质。在每两组数据之间输出空行。

题目描述

[problemUrl]: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&page=show_problem&problem=46 [PDF](https://uva.onlinejudge.org/external/1/p110.pdf) ![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA110/e7616c269157ee4482451a7f36d40055535e4cb7.png)

输入输出格式

输入格式


![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA110/d772c32f7b30502663ae983935ebd6a668b3adb4.png)

输出格式


![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA110/7e651b84e37710fc6f17339b7b565f52feaebee1.png)

输入输出样例

输入样例 #1

1
3

输出样例 #1

program sort(input,output);
var
a,b,c : integer;
begin
readln(a,b,c);
if a < b then
if b < c then
writeln(a,b,c)
else if a < c then
writeln(a,c,b)
else
writeln(c,a,b)
else
if a < c then
writeln(b,a,c)
else if b < c then
writeln(b,c,a)
else
writeln(c,b,a)
end.