作业帮 > 综合 > 作业

杭州电子科技大学 ACM 4550题卡片游戏怎么做

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/28 07:19:00
杭州电子科技大学 ACM 4550题卡片游戏怎么做
Problem Description  小明最近宅在家里无聊,于是他发明了一种有趣的游戏,游戏道具是N张叠在一起的卡片,每张卡片上都有一个数字,数字的范围是0~9,游戏规则如下:
  首先取最上方的卡片放到桌子上,然后每次取最上方的卡片,放到桌子上已有卡片序列的最右边或者最左边。当N张卡片全部都放到桌子上后,桌子上的N张卡片构成了一个数。这个数不能有前导0,也就是说最左边的卡片上的数字不能是0。游戏的目标是使这个数最小。
  现在你的任务是帮小明写段程序,求出这个最小数。
Input第一行是一个数T,表示有T组测试数据;
然后下面有T行, 每行是一个只含有0~9的字符串,表示N张叠在一起的卡片,最左边的数字表示最上方的卡片。
[Technical Specification]
T<=1000
1 <= N <= 100

Output对于每组测试数据,请在一行内输出能得到的最小数。
Sample Input3
565
9876543210
9876105432
Sample Output556
1234567890
1678905432
杭州电子科技大学 ACM 4550题卡片游戏怎么做
这个是在百度是找的 这场比赛我没做 、、呵呵


#include
#include
#include
#include
#include
using namespace std;
const int N = 110;
char s[N];
int main(){
int _;
scanf("%d", &_);
while( _-- ){
scanf("%s", s);
string t;
t += s[0];
char ch = '9';
int pos;
for(int i = 0; s[i]; i++)
if( (s[i]!='0') && (ch>=s[i]) ) ch = s[pos=i];
for(int i = 1; s[i]; i++){
if( i == pos ) t = s[i] + t;
else if( i < pos ){
if( s[i]