/*
* 解题思路:
* 已经不想说这题的恶心程度了!!有一个神坑,输入的时候利用空格判别而不是换行符,题目不输入换行符
*/
#include <stdio.h> int p; int num[ 110 ]; int searchMax( int k ) { int i; int max = 0,maxPos = k; for( i=k;i>=0;i-- ) if( num[ i ] > max) { max = num[ i ]; maxPos = i; } return maxPos; } void reverse( int x ) { int tmp; int i,j; for(i=x,j=0;i>=j;i--,j++) { tmp = num[ j ]; num[ j ] = num[ i ]; num[ i ] = tmp; } } int main( ) { int i,k; int x,flag; char c; while( ~scanf("%d",&num[ 0 ]) ) { p = 1; while(1) { if(getchar() !=‘ ‘)break; scanf("%d",&num[p++]); } printf("%d",num[ 0 ]); for( i=1;i<p;i++ ) printf(" %d",num[ i ] ); puts(""); for( k=p-1;k>=0;k--) { x = searchMax( k ); if( x!=k ) { if( x!=0 ) { printf("%d ",p-x); reverse( x ); } reverse( k ); printf("%d ",p-k); } } printf("0\n"); } return 0; }