#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <map> #include<vector> #include<algorithm> using namespace std; // 首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。 // 同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。 // 你现在的任务是从这份借阅记录中计算出每个人有几个潜在朋友。 //每个案例第一行两个整数N,M,2 <= N ,M<= 200。 //接下来有N行,第i(i = 1,2,…,N)行每一行有一个数,表示读者i-1最喜欢的图书的编号P(1<=P<=M) // 每个案例包括N行,每行一个数,第i行的数表示读者i有几个潜在朋友。 // 如果i和任何人都没有共同喜欢的书,则输出“BeiJu”(即悲剧,^ ^) int main() { int N, M; scanf("%d%d", &N, &M); vector<int> role(N + 1); vector<vector<int>> book(M + 1); //类似 邻接表 for (int i = 1; i <= N; i++) { int P; scanf("%d", &P); role[i] = P; book[P].push_back(i); } for (int i = 1; i <= N; i++) { int friendNum = book[role[i]].size() - 1; if (friendNum == 0) { printf("BeiJu\n"); } else { printf("%d\n", friendNum); } } return 0; }