本文主要是介绍UVa 120 煎饼堆,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*
* 解题思路:
* 已经不想说这题的恶心程度了!!有一个神坑,输入的时候利用空格判别而不是换行符,题目不输入换行符
*/
#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;
}
这篇关于UVa 120 煎饼堆的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!