#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <cmath>
#include <map>
#include <set>
using namespace std;
char s[10], tmp[10];
void print_space(int cur)
{
for(int i = 0; i < cur; ++i)
printf(" ");
}
void judge(int cur, int n)
{
char b[10];
print_space(cur);
if(cur == n)
{
printf("writeln(%c", tmp[0]);
for(int i = 1; i < n; ++i)
printf(",%c", tmp[i]);
printf(")\n");
return ;
}
char c = s[cur];
tmp[cur] = s[cur];
tmp[cur+1] = 0;
strcpy(b, tmp);
if(cur > 0)
{
int po;
printf("if %c < %c then\n", tmp[cur-1], tmp[cur]);
judge(cur+1, n);
po = cur - 1;
for(int i = cur-1; i > 0; --i)
{
strcpy(tmp, b);
print_space(cur);
printf("else if %c < %c", tmp[i-1], tmp[cur]);
for(int j = cur; j > i; --j)
tmp[j] = tmp[j-1];
tmp[i] = c;
printf(" then\n");
judge(cur+1, n);
}
strcpy(tmp, b);
for(int j = cur; j > 0; --j)
tmp[j] = tmp[j-1];
tmp[0] = c;
print_space(cur);
printf("else \n");
judge(cur+1, n);
}
else judge(cur+1, n);
}
int main()
{
int t;
scanf("%d", &t);
while(t--)
{
int n;
scanf("%d", &n);
for(int i = 0; i < n; ++i)
s[i] = 'a'+i;
puts("program sort(input,output);");
puts("var");
for(int i = 0; i < n; ++i)
{
if(i != 0) printf(",");
printf("%c", s[i]);
}
puts(" : integer;");
puts("begin");
printf(" readln(%c", s[0]);
for(int i = 1; i < n; ++i)
printf(",%c", s[i]);
puts(");");
judge(0, n);
puts("end.");
if(t) puts("");
}
return 0;
}
110 Meta-Loopless Sorts
最新推荐文章于 2020-09-11 06:15:14 发布