提交时间:2022-07-13 12:20:15

运行 ID: 51632

#include <iostream> #include <cstdio> using namespace std; int n,k,ty; string s,t; int ans=0; bool u[26]; void dfs(int p,int d) { if(p==n) { ans=max(ans,d); return ; } if(u[s[p]]==0 || (u[s[p]] && s[p]==t[d])) { t[d+1]=s[p]; u[s[p]]=1; dfs(p+1,d+1); if(s[p]!=t[d]) u[s[p]]=0; } dfs(p+1,d); } int main() { cin>>n>>k>>ty; cin>>s; dfs(0,0); cout<<ans<<endl; return 0; }