洛谷[P4896] Oier们的烦恼
模拟即可。
用两个map存老师学生的名字,用getline读取。
如果符合题意,就标记,最后加个判断
#include<bits/stdc++.h> using namespace std; int a,i,j,ans; bool came; map<string ,int>mmp; map<string ,int>mmq; string s,s1[7],s2,s3; char qqq; int main(){ ios::sync_with_stdio(false); cin>>a; for(i=1;i<=3;i++) cin>>s,mmp[s]=1; for(i=1;i<=5;i++) cin>>s1[i],mmp[s1[i]]=2,mmq[s1[i]]=0; sort(s1+1,s1+6); for(i=1;i<=a;i++) { cin>>s; char qqq=cin.get(); if(qqq=='\n') continue; if(mmp[s]==1) { getline(cin,s2); if(s2=="came!") { for(j=1;j<=5;j++) if(mmq[s1[j]]==1) mmq[s1[j]]=2; came=1; } if(s2=="left!") came=0; continue; } if(mmp[s]==2) { getline(cin,s2); if(s2=="started playing games!") { if(came==0) mmq[s]=1; else mmq[s]=2; } if(s2=="stopped playing games!") if(mmq[s]!=2) mmq[s]=0; continue; } getline(cin,s2); } bool my; for(i=1;i<=5;i++) if(mmq[s1[i]]==2) cout<<s1[i]<<' ',ans++; if(ans==5) cout<<"\nHow Bad Oiers Are!"; if(ans==0) cout<<"How Good Oiers Are!"; return 0; }

浙公网安备 33010602011771号