#include<bits/stdc++.h>
using namespace std;
bool cmp(string a,string b){
return a+b>b+a;
}
int main(){
string sum;
string str;
while(cin>>str){
str+=',';
int start=0;
vector<string> res;
for(int i=0;i<str.length();i++){
if(str[i]==','){
string ans=str.substr(start,i-start);
res.push_back(ans);
start=i+1;
}
}
sort(res.begin(),res.end(),cmp);
for(int i=0;i<res.size();i++){
sum+=res[i];
}
if(sum[0]=='0') cout<<'0'<<endl;
else cout<<sum<<endl;
}
} #include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
string ans;
vector<string> nums;
char c = '0';
do{
int tmp;
cin >> tmp;
nums.emplace_back(to_string(tmp));
c = getchar();
while(c == ' '){
c = getchar();
}
}while(c != '\n');
sort(nums.begin(), nums.end(),[&](string a, string b){
return a+b > b+a;
});
if(nums[0] == "0"){
ans = "0";
}
else{
for(auto ss : nums){
ans += ss;
}
}
cout << ans << endl;
return 0;
} import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line;
while((line = br.readLine()) != null) {
String[] arr = line.trim().split(",");
Arrays.sort(arr, new Comparator<String>(){
@Override
public int compare(String s1, String s2){
return -(s1 + s2).compareTo(s2 + s1);
}
});
StringBuilder result = new StringBuilder();
for(String num: arr)
result.append(num);
if(result.toString().charAt(0) == '0')
System.out.println("0");
else
System.out.println(result.toString());
}
}
} def crank(a, b):
if (int(a + b)) > (int(b + a)):
return 1
else:
return 0
rank = {}
time = 0
num = list(map(str, input().split(',')))
chongfu = {}
for i in range(len(num)):
for j in range(i, len(num)):
chongfu[num[i]] = chongfu.get(num[i],1)
if num[i] == num[j] and i != j:
chongfu[num[i]] = chongfu.get(num[i], 0) + 1
num[i] = '0'
for i in range(len(num)):
for j in range(len(num)):
rank[num[i]] = rank.get(num[i], 0) + crank(num[i], num[j])
rank = sorted(rank.items(), key = lambda item:item[1], reverse = True)
if rank[0][0] != '0':
for i in range(len(rank)):
while(time != chongfu.get(rank[i][0],0)):
print(rank[i][0], end = '')
time += 1
time = 0
else:
print(0) #include<bits/stdc++.h>
(755)#define ll long long
using namespace std;
ll sum;
vector<string> s;
bool cmp(string a,string b){
return a>b;
}
int main(){
string str,tmp;
cin>>str;
str+=',';
int len=str.length();
int cnt=0,maxlen=0;
for(int i=0;i<len;i++){
if(str[i]==','){
s.push_back(tmp);
cnt++;
int pp=tmp.length();//不能直接写到max里比,要强制类型转换
maxlen=max(pp,maxlen);
tmp.clear();
continue;
}
tmp+=str[i];
}
for(int i=0;i<cnt;i++){
int temp=maxlen-s[i].length();
while(temp){
s[i]+='~';
temp--;
}
}
sort(s.begin(),s.end(),cmp);
string ans;
for(int i=0;i<cnt;i++){
s[i].erase(std::remove(s[i].begin(), s[i].end(), '~'), s[i].end());
ans+=s[i];
}
if(ans[0]=='0') cout<<'0';
else cout<<ans;
return 0;
}