1 #include <iostream> 2 #include <string> 3 #include <cstring> 4 using namespace std; 5 int main() 6 { 7 char a[501][10];//存储字符串 8 int pos[501];//字符串存放的位置 9 int exist[1100];//用来标志表中某个位置是否被占用,数组要开大,P是>=N的最小素数 10 int N, P; 11 cin >> N >> P; 12 for (int i = 0; i < P; i++)exist[i] = -1;//没有被占用时设为-1 13 for (int i = 0; i < N; i++) 14 { 15 cin >> a[i]; 16 int flag = 0; 17 for (int c = 0; c < i; c++) 18 { 19 if (!strcmp(a[i], a[c]))//检测是否有重复的关键字 20 { 21 pos[i] = pos[c]; 22 flag = 1; 23 break; 24 } 25 } 26 if (flag == 0)//如果没有重复的关键字 27 { 28 int k = -1; 29 while (a[i][++k] != '