请问这道题用c语言怎么解
ACM比赛中一共有10道题目,他们的各种的做***有很多不同,涉及到的知识点也有很多,包括图论,数论,动态规划等,小M和他的队友小Z,小S一共三人,小M负责图论类型的知识点,小Z负责数论类型的知识点,而小S负责动态规划类型的知识点,如果出现其他类型的知识点,则他们都不会。特殊地,有些题目是由两个或两个以上知识点所组成的,一个人解决不了,所以需要两个或两个以上的人合作完成这道题。请输出他们所有人的名字。
赛场上时间紧迫,小M想请你告诉他,每一道题应该由哪几位同学去完成。
输入描述:
一个数字N(N<1000),代表题目的数量;之后N行,每行一个字符串,保证长度不超过100,代表该题所需要的知识点,M代表图论,Z代表数论,S代表动态规划。
输出描述:
每组样例对应一行输出。如果此题可做,请输出所有参与解题的同学的名字(名字输出优先级为"M">"Z">"S",不含双引号),用空格隔开,如果不可,请输出"???"(不含双引号)。