南邮 OJ 1125 Substring

来源:互联网 发布:少见的姓氏 知乎 编辑:程序博客网 时间:2024/06/05 11:21

Substring

时间限制(普通/Java) : 2000 MS/ 6000 MS          运行内存限制 : 65536 KByte
总提交 : 201            测试通过 : 49 

比赛描述

Dr lee cuts a string S into N pieces , s[1],……,s[N].
Now , Dr lee gives you these N sub-string:s[1]…,s[N].T there might be several possibilities that the string S could be . For example , if Dr.lee gives you three sub-strings{“a”,”ab”,”ac”},the string S could be “aabac”,”aacab”,”abaac”,…
Your task is to output the lexicographically smallest S.

输入

The first line of the input is a positive integer T.T is the number of the test cases followed.
The first line of each test case is a positive integer N(1<=N<=8) which represents the number of sub-strings.After that,N lines followed. The i-th line is the i-th sub-string s[i].Assume that the length of each sub-string is positive and less than 100.

输出

The output of each test is the lexicographically smallest S.No redundant spaces are needed.

样例输入

1
3
a
ab
ac

样例输出

aabac

题目来源

第九届中山大学程序设计竞赛预选题




#include<iostream>#include<string>#include<vector>#include<algorithm>using namespace std;int main(){int T,N,i;string s,min_s,ss[8];vector<string>::iterator it;cin>>T;while(T--){cin>>N;min_s = "~";for(i=0;i<N;++i){cin>>ss[i];}sort(ss,ss+N);do{s = ss[0];for(i=1;i<N;++i){s += ss[i];}if(min_s>s){min_s = s;}}while(next_permutation(ss,ss+N));cout<<min_s<<endl;}}






0 0
原创粉丝点击