#include <algorithm>
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
int main() {
std::vector<int> v = { 1, 2, 3, 4, 10, 20, 30, 40 };
std::sort( v.begin(), v.end(), [](int l, int r)
{
std::stringstream ss;
ss << l;
std::string ls = ss.str();
ss.str("");
ss << r;
return ls < ss.str();
} );
for( const int i : v )
{
std::cout << i << " ";
}
std::cout << '\n';
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KCmludCBtYWluKCkgewoJCglzdGQ6OnZlY3RvcjxpbnQ+IHYgPSB7IDEsIDIsIDMsIDQsIDEwLCAyMCwgMzAsIDQwIH07CgkKCXN0ZDo6c29ydCggdi5iZWdpbigpLCB2LmVuZCgpLCBbXShpbnQgbCwgaW50IHIpCgkJeyAKCQkJc3RkOjpzdHJpbmdzdHJlYW0gc3M7CgkJCXNzIDw8IGw7CgkJCXN0ZDo6c3RyaW5nIGxzID0gc3Muc3RyKCk7CgkJCXNzLnN0cigiIik7CgkJCXNzIDw8IHI7CgkJCXJldHVybiBscyA8IHNzLnN0cigpOwoJCX0gKTsKCQkKCWZvciggY29uc3QgaW50IGkgOiB2ICkKCXsKCQlzdGQ6OmNvdXQgPDwgaSA8PCAiICI7Cgl9CglzdGQ6OmNvdXQgPDwgJ1xuJzsKCQoJcmV0dXJuIDA7Cn0=