Ух ты, да, это не самое лучшее описание алгоритма:).
Моя интерпретация заключается в том, что они хотят, чтобы вы сделали следующее:
fannkuch(n) {
int maxFlips = 0, printCount = 0;
foreach permutation p of [1..n] {
maxFlips = max(maxFlips, flipCount(p));
if (printCount++ < 30) printPermutation(p);
}
print(maxFlips);
}
flipCount(p) {
int count = 0;
while (p[0] != 1) {
reverse(p, p + p[0]);
count++;
}
return count;
}