the code is failing in first test case
#include
#include
#include
using namespace std;
bool comp(string a, string b){
if(b.size() >= a.size() && b.substr(0, a.size()) == a)return false;
else if(a.size() >= b.size() && a.substr(0, b.size()) == b)return true;
else return a<b;
}
int main() {
int n;
cin>>n;
cin.get();
string a[100];
for(int i =0;i<n;i++){
getline(cin, a[i]);
}
sort(a, a+n, comp);
for(int i =0;i<n;i++){
cout<<a[i]<<endl;;
}
return 0;
}