近义词维护
描述 :
系统需要支持四条命令。
命令是一行字符串,第一个单词是命令关键词,后面可能有若干个参数,命令字和参数之间以空格隔离。具体如下:
1、设置2个单词为近义词:
SetSynonyms 单词1 单词2
SetSynonyms为命令关键词,单词1和单词2是参数,以空格隔开
如果命令成功,不输出。如果命令执行失败:
a.如果命令参数过多,输出:error:too many parameters
b.如果如果命令参数过少,输出:error : too few parameters
c.其他原因导致的失败,输出:false
2、查询2个单词是否为近义词:
IsSynonyms 单词1 单词2
IsSynonyms 为命令关键词,单词1和单词2是参数,以空格隔开
如果成功,输出true;如果命令执行失败:
a.如果命令参数过多,输出:error:too many parameters
b.如果如果命令参数过少,输出:error : too few parameters
c.其他原因导致的失败,输出:false
3、清除系统所有的近义词关系。
ClearRelations
该命令没有参数。如果有参数,输出:error : too many parameters
注意:近义词具有相互传递性,如果A和B为近义词,B和C是近义词,那么A、B、C都为近义词。
4、结束命令,后面的输入全部忽略,不再处理任何命令。
End
5、接收的其他命令。输出:error:The system does not support this command
运行时间限制 : 无限制
内存限制 : 无限制
输入 :
字符串多行,每行一条命令
输出 :
字符串
样例输入 :
SetSynonyms designed1 designed2
SetSynonyms designed2 designed3
IsSynonyms designed1 designed3
SetSynonyms designed4 designed3 designed5
End
样例输出 :
true
error : too many parameters
#include <string>
#include <vector>
#include <cstdlib>
#include <math.h>
#include <algorithm>
#include <iostream>
#include<time.h>
using namespace std;
#define MAX 10000
int main() //华为OJ,8个例子错了7个 ORZ不知道为什么
{
string A[MAX];
string B[MAX];
int flag[MAX];
int cnt = 0,cntb = 0,lab = 1;
getline(cin, A[cnt]);
while (A[cnt] != "End")
{