luogu#P2373. yyy2015c01 的 IDE 之 Call Stack

yyy2015c01 的 IDE 之 Call Stack

题目背景

在 2020 年的某一天,我们的 yyy2015c01 同学想要开发一套 IDE。

题目描述

作为他开发团队中的一员,你不幸地 yyy2015c01 被选入了 Debugger 的开发组。

yyy2015c01 设想的 Debugger 由几部分组成,其中的一个小组件就是 Call Stack——中文称之为 “调用栈”。

由于 IDE 目前还是内测版,开发组需要先编一个能识别参数表的 Call Stack 来看看效果如何。这个任务交由你来完成。

开发组假想的 Call Stack 能实现识别 intchar 参数表,以辨别出不同的函数,规则是:

int fac1(int n);

int fac1(char n);

是两个不同的函数;但

int Fac1(int n,int m);

int FAC1(int x,int y);

被认为是相同的函数。也就是说,这个 Call Stack 认的不是参数名,而是其类型和忽略大小写的函数名。

注意:int main() 可能会出现,也可能不出现;无论它有没有出现,都不能将其算入函数中。

请你编写一个 Call Stack,并在所有函数调用完后输出这个程序一共有多少个不完全相同的函数(保证程序中的每个函数至少调用一次)。

输入格式

输入共 n+1n + 1 行:第一行是一个正整数 nn,表示共有 nn 次调用操作;第 2n+12 \sim n+1 行每行是一条函数调用信息(严格按照样例输入的格式),保证不会有多余的其他字符。

输出格式

输出共一行:一个正整数 mm,表示在上述调用中共有多少个参数表不完全相同的函数。

2
FAC1 (N=233, M=65 'A', A=0)
main ()

1

2
fac1 (N=250)
FAC1 (a=987)

1

提示

每个函数的参数最多有 1010 个,每行的输入数据长度均不超过 255255

向本题主人公 yyy2015c01 同学致敬!