#include #include #include #include #include int main() { using namespace std; int n; cin >> n; vector l(n); for (auto &e : l) { cin >> e; } vector names; map mp; vector solved(n, 0); vector> scores; auto f = [&](int n, int k) -> int { return (50 * n) + (500 * n) / (8 + 2 * k); }; int t; cin >> t; for (int i = 0; i < t; i++) { string s; char p; cin >> s >> p; if (!mp.contains(s)) { names.push_back(s); mp[s] = scores.size(); scores.push_back(vector(n + 3, 0)); scores[mp[s]][0] = mp[s]; } int id = mp[s], prob = p - 'A'; solved[prob]++; int score = f(l[prob], solved[prob]); scores[id][1] += score; scores[id][2] = i; scores[id][prob + 3] += score; } sort(scores.begin(), scores.end(), [](const auto lhs, const auto rhs) { if (lhs[1] != rhs[1]) { return lhs[1] > rhs[1]; } return lhs[2] < rhs[2]; }); int m = scores.size(); for (int i = 1; i <= m; i++) { auto res = scores[i - 1]; cout << i << " " << names[res[0]] << " "; for (int j = 3; j < n + 3; j++) { cout << res[j] << " "; } cout << res[1] << "\n"; } }