提交时间:2022-07-13 11:47:49

运行 ID: 51504

#include <bits/stdc++.h> using namespace std; int n,k,type,ans; string s; bool v[3005],tmp[3005],f; bool check() { for(int i=0; i<s.size()-2; i++) if(!v[i]) for(int j=i+1; j<s.size()-1; j++) if(!v[j]) for(int k=j+1; k<s.size(); k++) if(s[i]==s[k]&&s[i]!=s[j]&&!v[k]) return 0; return 1; } void dfs(int a) { if(a>n) return; if(check()) { int tot=0; for(int i=0; i<s.size(); i++) if(!v[i]) tot++; if(!f) for(int i=0; i<s.size(); i++) tmp[i]=v[i]; f++; ans=max(ans,tot); } dfs(a+1); v[a]++; dfs(a+1); v[a]=0; } int main() { cin>>n>>k>>type>>s; dfs(0); cout<<ans<<endl; if(type) for(int i=0; i<s.size(); i++) if(!tmp[i]) cout<<s[i]; }