Whats wrong in this?

#include
#include
#include
#include
using namespace std;
int comparator(string a,string b)
{
string p,q;
p=a.append(b);
q=b.append(a);
return p.compare(q)?0:1;
}
int main() {
int t,i,j,n;
string a[100];
cin>>t;
while(t>0)
{
cin>>n;
cin.get();
for(i=0;i<n;i++)
{
getline(cin,a[i]);
}

	for(i=0;i<n;i++)
	{
		sort(a,a+n,comparator);
	}
	for(i=0;i<n;i++)
	{
		cout<<a[i];
	}
	t--;
}
return 0;

}

@mayankjha print answer for each test case in a new line.