按题意直接模拟即可。

AC code:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, k, has_ex;
    cin >> n >> k >> has_ex;
    map<int, set<int>> problem_map;
    for (int i = 0; i < n; ++i) {
        int id, hard;
        cin >> id >> hard;
        problem_map[id].insert(hard);
    }
    for (int id = 1; id <= k; ++id) {
        char char_id = 'A' + id - 1;
        set<int>& hard_set = problem_map[id];

        if (hard_set.size() == 1) {
            cout << char_id << endl;
        } else {
            int idx = 1;
            for (int hard : hard_set) {
                cout << char_id << idx << endl;
                idx++;
            }
        }
    }
    if (has_ex == 1) {
        cout << "Ex" << endl;
    }
    return 0;
}