Educational Codeforces Round 9-C. The Smallest String Concatenation(字符串排序)

原创 2016年08月29日 15:30:56

原题链接

C. The Smallest String Concatenation
time limit per test
3 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

You're given a list of n strings a1, a2, ..., an. You'd like to concatenate them together in some order such that the resulting string would be lexicographically smallest.

Given the list of strings, output the lexicographically smallest concatenation.

Input

The first line contains integer n — the number of strings (1 ≤ n ≤ 5·104).

Each of the next n lines contains one string ai (1 ≤ |ai| ≤ 50) consisting of only lowercase English letters. The sum of string lengths will not exceed 5·104.

Output

Print the only string a — the lexicographically smallest string concatenation.

Examples
input
4
abba
abacaba
bcd
er
output
abacabaabbabcder
input
5
x
xx
xxa
xxaa
xxaaa
output
xxaaaxxaaxxaxxx
input
3
c
cb
cba
output
cbacbc
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stack>
#include <iostream>
#include <vector>
#include <queue>
#include<cmath>
#define maxn 50005
#define INF 1e9 + 5
typedef long long ll;
using namespace std;

char p1[120], p2[120];
struct Node{
	char s[55];
	friend bool operator < (const Node&a, const Node&b){
		strcpy(p1, a.s);
		strcpy(p2, b.s);
		strcat(p1, b.s);
		strcat(p2, a.s);
		return strcmp(p1, p2) < 0;
	} 
}node[maxn];
int main(){
	
//	freopen("in.txt", "r", stdin);
	int n;
	
	scanf("%d", &n);
	for(int i = 0; i < n; i++)
	  scanf("%s", node[i].s);
	sort(node, node+n);
	for(int i = 0; i < n; i++)
	 printf("%s", node[i].s);
	puts("");
	
	return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

Educational Codeforces Round 9-C. The Smallest String Concatenation(string)

C. The Smallest String Concatenation time limit per test 3 seconds memory limit per test ...
  • zsc2014030403015
  • zsc2014030403015
  • 2016年03月02日 21:02
  • 185

Educational Codeforces Round 27

A 题意:把2 * n个人分成两组,使得无论两组的人怎么进行比赛 第一组的人始终都要保持全赢,如果两个人能力值相等两人都可以赢 思路:排序后只要保证n + 1个人的能力值大于第n个人的能力值即可 #i...
  • sasuke__
  • sasuke__
  • 2017年08月23日 10:35
  • 200

Educational Codeforces Round 8 总结

A. Tennis Tournament time limit per test 1 second memory limit per test 256 megabytes ...
  • zyx520ytt
  • zyx520ytt
  • 2016年02月21日 02:47
  • 589

Educational Codeforces Round 9 C. The Smallest String Concatenation(字符串排序)

You're given a list of n strings a1, a2, ..., an. You'd like to concatenate them together in some ...
  • Kirito_Acmer
  • Kirito_Acmer
  • 2016年03月02日 13:34
  • 422

Educational Codeforces Round 36 题解

总结 第一次打cf的edu round,发现是acm赛制,感觉比平常的cf赛制要好玩一些。这场的题目比较水,当然我没打过其他场不能做比较。然而因为时间不太够所以并没有AK,果然自己跟Claris等神...
  • qq_33229466
  • qq_33229466
  • 2018年01月14日 00:40
  • 276

Educational Codeforces Round 17 C && codeforces 762C C. Two strings 详细的题解 (前后缀应用)

C. Two strings time limit per test 2 seconds memory limit per test 256 megabytes in...
  • qq_34374664
  • qq_34374664
  • 2017年02月02日 13:39
  • 788

Codeforces Educational Codeforces Round 37 E

You are given an undirected graph consisting of n vertices and edges. Instead of giving you the edg...
  • yqdjl6
  • yqdjl6
  • 2018年02月03日 18:16
  • 48

Educational Codeforces Round 37 (Rated for Div. 2)【A B C】【水】【模拟】

嗖的一下! A #include using namespace std; #define ll long long int a[500]; int c[500]; int main() { ...
  • Head_Hard
  • Head_Hard
  • 2018年02月03日 16:18
  • 57

Educational Codeforces Round 36 (Rated for Div. 2) 题解

先总结一波 第一次打cf,感觉还不错,题目做得挺顺手。虽然开始30min才想起来有这么个比赛来着。。 纪念一下第一次的rank,话说题真是水 这是大概还剩下5min的时候截的,实际可能会...
  • jpwang8
  • jpwang8
  • 2018年01月13日 23:16
  • 246

Educational Codeforces Round 37

题面题目详见CodeForces 先大概的写个翻译。。。A有一个长度为nn的花园 有KK个水龙头, 假设水龙头的位置在xx 1s1s后xx会被灌溉 2s2s后[x−1,x+1][x-1,x+...
  • qq_30974369
  • qq_30974369
  • 2018年02月03日 17:19
  • 91
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Educational Codeforces Round 9-C. The Smallest String Concatenation(字符串排序)
举报原因:
原因补充:

(最多只允许输入30个字)