重制代码

// #include <cstdio>
// #include <cstring>

// // 寻找喜欢同一本书的潜在朋友
// int main() {
//     int N, M, book[201]; // N个读者,M本书,book表示读者喜欢的书M的编号
//     memset(book, -1, sizeof(book));
//     while (scanf("%d%d", &N, &M) != EOF) {
//         for (int i = 0; i < N; i++) {
//             scanf("%d", &book[i]);
//         }
//         for (int i = 0; book[i] != -1; i++) {
//             int temp = book[i];
//             int cnt = -1; // 因为会把自己再算一遍,因此从-1开始
//             for (int j = 0; book[j] != -1; j++) {
//                 if (book[j] == temp)
//                     cnt++;
//             }
//             if (cnt) {
//                 printf("%d\n", cnt);
//             }
//             else {
//                 printf("BeiJu\n");
//             }
//         }
//     }
//     return 0;
// }

#include <cstdio>
#include <map>
#include <vector>
using namespace std;

int main() {
    int n, m;   // n个读者,m本书
    int booknum;
    map<int, int> reader;   // 键是读者编号i,值是喜欢的书的编号
    int ans[201];           // 该读者有几个潜在朋友

    while (scanf("%d%d", &n, &m) != EOF) {
        for (int i = 1; i <= n; i++) {
            scanf("%d", &booknum);
            reader[i] = booknum;
        }
        for (int i = 1; i <= n; i++) {
            int fav = reader[i];    // 要查找的i号读者喜欢书的编号
            int cnt = 0;
            for (auto it = reader.begin(); it != reader.end(); it++) {
                if (it->second == fav) {
                    cnt++;
                }
            }
            ans[i] = cnt - 1;         // 自己不算,当没有其他人喜欢同一本书时,存入0
        }
        for (int i = 1; i <= n; i++) {
            if (!ans[i]) {
                printf("BeiJu\n");
            }
            else {
                printf("%d\n", ans[i]);
            }
        }
    }
    return 0;
}