#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <cstdlib>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> ans;
char str[256];
int a[31];
int sorted[31];
int cnt;
void flap(int p){
ans.push_back(p+1);
for(int i=0;i<p/2;i++){
swap(a[i],a[p-i]);
}
printf("debug: ");
for(int i=0;i<cnt;i++){
printf("%d ", a[i]);
}
printf("\n");
}
int main ()
{
// cin.getline(str, 256);
// char * pch;
// pch = strstr (str,"simple");
// strncpy (pch,"sample",6);
// puts (str);
while(cin.getline(str, 256)){
char *loc;
cnt = 0;
ans.clear();
a[cnt++] = atoi(str);
loc = strstr(str, " ");
while(loc != NULL){
a[cnt++] = atoi(loc);
loc = strstr(loc + 1, " ");
}
for(int i=0;i<cnt;i++){
sorted[i] = a[i];
}
sort(sorted,sorted+cnt);
printf("debug sort: ");
for(int i=0;i<cnt;i++){
printf("%d ", sorted[i]);
}
printf("\n");
for(int j=cnt-1;j>=0;j--){
if(a[j]!=sorted[j]){
printf("!equ %d\n", a[j]);
int pos;
for(pos = 0; pos <= j; pos++){
if(a[pos]==sorted[j]){
break;
}
}
if(pos!=0){
flap(pos);
}
flap(j);
}
}
for(int i=0;i<ans.size();i++){
printf("%d ", ans[i]);
}
printf("\n");
}
return 0;
}
网友评论