#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int getScore(int n, int k) { return 50 * n + (500 * n) / (8 + 2 * k); } class Data { public: string name; vector score; int sum; int lastSubmit; bool operator<(const Data& data) const { return make_pair(sum, -lastSubmit) < make_pair(data.sum, -data.lastSubmit); } }; int main() { int n; cin >> n; vector level(n); for(int i=0; i> level[i]; int t; cin >> t; vector submitNum(n, 0); map data; for(int i=0; i> name >> p; int index = p - 'A'; ++ submitNum[index]; int score = getScore(level[index], submitNum[index]); data[name].name = name; data[name].score.resize(n); data[name].score[index] += score; data[name].sum += score; data[name].lastSubmit = i; } vector v; for(const auto& p : data) v.push_back(p.second); sort(v.rbegin(), v.rend()); int rank = 0; for(const auto& d : v){ ++ rank; cout << rank << ' ' << d.name << ' '; for(int i=0; i