#include<bits/stdc++.h>
using namespace std;
string name[230],s[230];
char ch_it[230][15];
int ch[230],it[230],all[230];
int main(){
int n;
cin>>n;
memset(ch,1,sizeof(ch));
memset(it,1,sizeof(it));
int cnt=0;
for(int i=1;i<=n;i++){
cin>>name[i];
getchar();
getline(cin,s[i]);
for(int j=0;j<name[i].size();j++){
if(name[i][j]>='A'&&name[i][j]<='Z'){
name[i][j]+=' ';
}
}
for(int j=0;j<s[i].size();j++){
if(s[i][j]==' ') s[i].erase(j,1);
}
for(int j=0;j<s[i].size();j++){
if(s[i][j]=='='){
j++;
bool ischar=false;
while(s[i][j]!=','&&s[i][j]!=')'){
if(s[i][j]=='\''){
ch_it[i][++all[i]]='c';
ch[i]++;
ischar=true;
break;
}
j++;
}
if(!ischar){
ch_it[i][++all[i]]='i';
it[i]++;
}
}
}
if(name[i]!="main") cnt++;
}
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
if(ch[i]==it[j]){
if(name[i]==name[j]){
bool same=true;
for(int k=1;k<n;k++){
for(int l=1;l<=n;l++){
if(ch_it[k][l]!=ch_it[k+1][l]){
same=false;
break;
}
}
}
if(same) cnt--;
}
}
}
}
cout<<cnt;
return 0;
}
样例#2 输出 :2
交上去AC了?