#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; }