FZUOJ 2135 数字游戏

数字游戏

Accept: 254    Submit: 393
Time Limit: 1000 mSec    Memory Limit : 32768 KB

Problem Description

给一个N位的正整数,该数不包含前导0,先让你调整其中每个数字的位置,得到另一个n位的数,并且使得这个数越小越好,而且这个数不能包含前导0。比如543210可以变成102345,而12345保持不变才是最优结果。

Input

第一行一个整数T(T<=100),表示有T组数据。

每组数据先输入一行一个整数N(1<=N<=100),表示位数,接下来一行输入一个N位的不包含前导0的正整数。

Output

每组数据对应一行输出,即调整数字位置后能得到的最小的不包含前导0的数。

Sample Input

3654321031233231

Sample Output

102345123123



ac代码:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#define MAXN 1010
#define INF 0xfffffff
#define min(a,b) a>b?b:a
using namespace std;
char num[MAXN];
int main()
{
	int t;
	int i,k,n;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		scanf("%s",num);
		sort(num,num+n);
		for(i=0;i<n;i++)
		{
			if(num[i]!='0')
			{
				printf("%c",num[i]);
				k=i;
				break;
			}
		}
		for(i=0;i<n;i++)
		{
			if(i!=k)
			printf("%c",num[i]);
		}
		printf("\n");
	}
	return 0;
}


你可能感兴趣的:(FZUOJ 2135 数字游戏)