只过了3个点,大佬给个hack数据也行啊
#include<bits/stdc++.h>
using namespace std;
int tn[111111][66],len[111111],id;
char c[111111],d;
long long ans;
int main()
{
int n,a,b,r;
cin>>n;
while(n--)
{
scanf("%c",&d);
while(d<=32) scanf("%c",&d);
c[0]=d;
for(int i=1;;i++)
{
scanf("%c",&c[i]);
if(c[i]==';')
break;
}
a=0;
r=7;
if(c[6]=='_')
r=12;
for(;c[r]!='(';r++)
{
if(tn[a][c[r]-'A']==0)
tn[a][c[r]-'A']=++id;
a=tn[a][c[r]-'A'];
}
if(c[++r]=='"')
{
len[a]=strlen(c)-r-4;
if(c[6]!='_')
ans+=len[a];
continue;
}
b=0;
for(;c[r]!=')';r++)
b=tn[b][c[r]-'A'];
len[a]=len[b];
if(c[6]!='_')
ans+=len[b];
}
cout<<ans;
return 0;
}