真服了,WA on #19,调了半天,悬赏关注
查看原帖
真服了,WA on #19,调了半天,悬赏关注
616964
Adolfo_North楼主2023/1/8 10:56
#include<bits/stdc++.h>
using namespace std;
bool f[26];
struct node{
	int cnt;
	char c;
} sk[26];
bool cmp(node a,node b){
	return a.cnt<b.cnt;
}
int main(){
	string a;
	int k,sum=0;
	cin>>a>>k;
	int sizea=a.size();
	if(k>=sizea){
		cout<<0<<endl;
		return 0;
	}
	for(int i=0;i<sizea;i++){
		if(sk[a[i]-'a'].cnt==0) sum++;
		sk[a[i]-'a'].cnt++;
		sk[a[i]-'a'].c=a[i];
	}
	if(sum==1){
		cout<<1<<endl<<a;
		return 0;
	}
	for(int i=0;i<26;i++) if(sk[i].cnt==0) sk[i].cnt=0x7fffffff;
	sort(sk,sk+25,cmp);
//	for(int i=0;i<26;i++) cout<<sk[i].cnt<<endl;
	int i=0;
	while(1){
		if(sk[i].cnt<=k){
			k-=sk[i].cnt;
			sum--;
			f[sk[i].c-'a']=1;
			i++;
		}
		else break;
	}
	cout<<sum<<endl;
	for(int i=0;i<sizea;i++){
		if(f[a[i]-'a']==0) cout<<a[i];
	}
	return 0;
}
2023/1/8 10:56
加载中...