1 条题解

  • 1
    @ 2026-1-3 9:32:52
    #include<bits/stdc++.h>
    using namespace std;
    bool flag[100005];
    string a="";
    string s,t;
    void dfs(int x)
    {
    	for(int i=t.size();i>=0;i--)
    	{
    		if(s[x]==t[i]&&flag[i]==0)
    		{
    			a=t[i]+a;
    			flag[i]=1;
    			dfs(i);
    			break;
    		}
    	}
    }
    int main()
    {
    	int n,p;
    	cin>>n>>s>>p;
    	t=s;
    	sort(t.begin(),t.end());
    	int k;
    	for(int i=0;i<t.size();i++)
    	{
    		if(t[i]==s[p-1])
    		{
    			flag[i]=1;
    			k=i;
    			break;
    		}
    	}
    	dfs(k);
    	cout<<t[k];
    	cout<<a;
    }
    
    • 1

    信息

    ID
    2837
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    27
    已通过
    2
    上传者