代码是这样的
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,flag,bd;
string t[100005],s[100005],bs[100005],us;
const string mb1=" started playing games!",mb2=" stopped playing games!",mb3=" came!",mb4=" left!";
map<string,bool>st;
map<string,bool>bst;
map<string,bool>lo;
signed main(){
cin>>n;
for(int i=1;i<=3;i++)
cin>>t[i],lo[t[i]]=true;
for(int i=1;i<=5;i++)
cin>>s[i],lo[s[i]]=true;
for(int i=1;i<=n;i++)
{
cin>>us;
cout<<"oier\n";//调试程序,每输入一次输出一次
ll k=0;
string ls,stu;
for(int j=0;j<us.size();j++)
if(us[j]==' '){k=j;break;}
if(k!=0)ls=us.substr(0,k);
else continue;
if(lo[ls]==false)continue;
stu=us.substr(k,us.size()-1);
if(stu==mb1)st[ls]=true;
else if(stu==mb2)st[ls]=false;
else if(stu==mb3)flag=1;
else if(stu==mb4)flag=0;
else continue;
if(flag==1)
{
map<string,bool>::iterator it;
for(it=st.begin();it!=st.end();it++)
if(it->second==true)bd++,bs[bd]=it->first;
}
}
sort(bs+1,bs+bd+1);
for(int i=1;i<=bd;i++)
cout<<s[i]<<' ';
if(bd==5)cout<<"\nHow Bad Oiers Are!";
if(bd==0)cout<<"How Good Oiers Are!";
return 0;
}
结果输出是:
10
A B C
a b c d e
A came!
oier
oier
a started playing games!
oier
oier
oier
oier
b started playing games!
oier
oier
oier
oier
How Good Oiers Are!
求大佬帮忙解答一下为什么会这样???