Error showing up

#include
#include
#include
#include <bits/stdc++.h>
using namespace std;

bool my_compare(string a, string b)
{
return a > b;
}

int main() {
int t;
cin>>t;

while(t--)
{
	int n;
	cin>>n;

	int arr[100];
	string s;
	s.length()==n;

	for(int i=0;i<n;i++)
	cin>>s[i];

     sort(s.begin(),s.end(), my_compare);

	   for(int i=0;i<n;i++)
	   cout<<s[i];

return 0;

}
}

hello @himanshu24

sorting lexicographical order will not ensure maximum .

for example->
1
2
2 21
correct output is 221 but urs will give 212.

the logic is if a and b are two numbers then u can combine them in two ways either ab or ba right?
which ever combination give us maxium we will consider that order.
so just apply same logic in ur comparator and sort using this comparator

bool cmp(string a,string b){
return a+b > b+a;
} 

also pls save ur code at cb ide and share its link with me

I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.

On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.