20分求调
查看原帖
20分求调
1259477
qiuxiangyu2010楼主2024/8/8 13:57

(AC on#1#2)

#include <bits/stdc++.h>
using namespace std;
long long n,st,t[30];
string a,b;
signed main(){
   cin.tie(0)->sync_with_stdio(0);
 	cin>>n>>a>>st;
 	for(int i=0;i<n;i++){
	 	t[a[i]-'a']++;
	}
	b+=a[st-1];
	a[st-1]='#';
	while(b.size()<n){
		int c=0;
		char d;
		for(int i=0;i<26;i++){
			c+=t[i];
			if(c>=st){
				d='a'+i;
				b+=d;
				break;
			}
		}
		for(int i=0;i<n;i++){
			if(a[i]==d){
				st=i+1;
				a[i]='#';
				break;
			}
		}
	}
	cout<<b;
   return 0;
}

看过题解了,好像不是一个思路。

2024/8/8 13:57
加载中...