小慕正在开发一个编程语言编译器,需要实现方法重载与调用的管理模块。 系统支持以下2种操作: 1. 定义一个方法:输入格式为 "Type name(var1 a1, var2 a2, ...)",方法体(大括号及内部代码)被省略。 2. 调用一个方法:输入格式为 "name(var1, var2, ...)"。 上述格式中,vari 表示变量类型,ai 表示变量名,name 表示方法名,Type 表示返回类型,它们都是由小写字母组成的字符串。 小慕需要在每次操作后输出系统反馈: 1. 定义方法时,若成功,则输出 "ok.";若方法名与参数类型组合已存在,则输出 "method xxx is already defined."。 2. 调用方法时,若成功,则输出 "ok";若方法名不存在,则输出 "";若方法名存在但参数类型不匹配,则输出 "method xxx cannot be applied to given"。
提示:带虚线的词点一下有通俗解释。
输入描述
第一行输入一个正整数q,代表操作次数。 接下来的2*q行,每2行代表一次操作。 第一行为一个正整数op,代表操作类型,其中1表示创建,2表示调用 第二行为一个字符串,代表一次操作。 1 <= q <= 100 1 <= op <= 2 操作的字符串长度不超过100,且格式保证合法。
输出描述
输出q行字符串,代表每次操作系统的反馈。
示例
示例 1
输入
7 1 int f(int x) 1 int g(int x,String s) 2 f() 1 void f(double x,double y) 2 f(double,double) 2 solve(int,String) 1 void f(int y)
输出
ok. ok. method f cannot be applied to given types ok. ok. cannot find symbol solve. method f is already defined.
时间限制 1000 ms · 内存限制 128 MB