题目分析:比赛一直超时,后来分析是会一直套,如果违规词里有 censored 就会一直被找到就会超时,所以先用字符替换一下<censored>。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
string s,x[110],ss;
int n;
cin>>n;
getline(cin,ss);
for(int i=0;i<n;i++) getline(cin,x[i]);
int k,sum=0;
cin>>k;
if(k==0){
cout<<'0'<<endl<<"He Xie Ni Quan Jia!";
}
else{
getline(cin,ss);
getline(cin,s);
for(int i=0;i<n;i++)
{
while(1)
{
int tt=s.find(x[i]);
if(tt==-1) break;
sum++;
s.erase(tt,x[i].size());
s.insert(tt,"-_-");
}
}
if(sum>=k) cout<<sum<<endl<<"He Xie Ni Quan Jia!";
else{
while(s.find("-_-")!=-1)
{
int a=s.find("-_-");
s.erase(a,3);
s.insert(a,"<censored>");
}
cout<<s;
}
}
return 0;
}