class Solution {
public:
string largestNumber(vector<int>& nums) {
auto comp=[&](const int &x, const int &y) {
long long sx=10,sy=10;
while(sx<=x) {
sx*=10;
}
while(sy<=y) {
sy*=10;
}
return sy*x+y>sx*y+x;
};
sort(nums.begin(),nums.end(),comp);
if(nums[0]==0) return "0";
string str="";
for(int i=0;i<nums.size();i++) {
str+=to_string(nums[i]);
}
return str;
}
};