3 solutions

  • 0
    @ 2026-10-2 9:27:12
    #include<bits/stdc++.h>
    using namespace std;
    string s1,o[305],s[50005];
    int n;
    bool cmp(string a,string b){
    	for(int i=0;i<a.size()&&i<b.size();i++){
    		if(a[i]!=b[i]) return o[a[i]]<o[b[i]];
    	}
    	return a.size()<b.size();
    }
    int main()
    {
    	cin>>s1;
    	for(int i=1;i<=s1.size();i++){
    		o[s1[i]]=i;
    	}
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>s[i];
    	}
    	sort(s+1,s+n+1,cmp);
    	for(int i=1;i<=n;i++){
    		cout<<s[i]<<endl;
    	}
    	return 0;
    }
    

    Information

    ID
    2617
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    3
    Tags
    # Submissions
    12
    Accepted
    6
    Uploaded By