题目描述:
A成了游戏中的营长。他打算给游戏中的士兵们排一个整齐的队。目标是让这些士兵排成整齐的一列。从左到右士兵们的身高逐渐增加,当两个士兵的身高一样的时候,就按照他们名字的字典序进行排列,因为A觉得这样排起来最美观。
形式化地,给出n个士兵的身高(因为是在游戏中,身高可能很离谱)与名字(仅包含小写英文字母,并且我们保证两个不同士兵的名字不同),要将他们按照身高从小到大排序,如果身高相同则按照名字的字典序排序。
字典序:在英文字典中,排列单词的顺序是先按照第一个字母以升序排列(即a、b、c......z的顺序);如果第一个字母一样,那么比较第二个,第三个乃至后面的字母。如果比到最后两个单词不一样长(比如:sigh和sight),那么把短者排在前。
输入描述:
第一行一个正整数n,表示士兵数;
第二行n个空格隔开的正整数h[1,2,...,n],h[i]表示第i个士兵的高度;
第三行n个空格隔开的字符串s[1,2,...,n],s[i]表示第i个士兵的名字,注意,士兵的名字只包含小写英文字母且没有重复的名字。
n<=50000,h[i]<=300,s[i]仅包含小写英文字母且长度不大于10
输出描述:
输出一行,包含n个字符串s’[1,2,...,n],s'[i]表示经过排序后从左到右站在第i个位置的士兵的名字,不同名字间用单个空格隔开。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)