#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
typedef long long ll;
#define PII pair<string,string>
#define map unordered_map
map<int ,int> jdp;
map<string ,string> p_jd;
map<string ,int> hx;
vector<int> jd_r[N];
int dfs(int y)
{
int sum=jdp[y];
if(jd_r[y].size())
{
for(auto &t:jd_r[y])
sum+=dfs(t);
}
return sum;
}
int cnt=0;
int main()
{
IOS
int n,m;cin>>n>>m;
for(int i=1;i<=m;i++)
{
string a,b;
cin>>a>>b;
int isd=1;
int l=a.size();
for(int i=0;i<l;i++)
{
if(!isdigit(a[i]))
{isd=0;break;}
}
if(isd)
{
if(!hx[b]) hx[b]=++cnt;
jdp[hx[b]]++;
p_jd[a]=b;
}else{
if(!hx[b]) hx[b]=++cnt;
if(!hx[a]) hx[a]=++cnt;
jd_r[hx[b]].push_back(hx[a]);
}
}
char op;cin>>op;
while(op!='E')
{
if(op=='Q')
{
string x;cin>>x;
cout<<dfs(hx[x])<<endl;
}else if(op=='T')
{
string id;
string md;
cin>>id>>md;
if(p_jd.count(id)) jdp[hx[p_jd[id]]]--;
if(!hx[md]) hx[md]=++cnt;
jdp[hx[md]]++;
p_jd[id]=md;
}
cin>>op;
}
return 0;
}
L2-3 智能护理中心统计
最新推荐文章于 2024-04-07 10:22:37 发布