#include #include #include #include #include #include #include using namespace std; int main() { int n; cin >> n; vectorL(n); vectorSpeed(n); for (int i = 0; i < n; i++)cin >> L[i]; int T; cin >> T; vectorName; vectorP(T); vector>Score; vector>Rank; for (int i = 0; i < T; i++) { string name; char c; cin >> name >> c; P[i] = c - 'A'; int num; if (Name.size() == 0) { Name.push_back(name); num = 0; vectorl(n); Score.push_back(l); } else { for (int j = 0; j < Name.size(); j++) { if (Name[j] == name) { num = j; break; } if (j == Name.size() - 1) { Name.push_back(name); num = j; vectorl(n); Score.push_back(l); } } } int score = 50 * L[P[i]] + 50 * L[P[i]] / (0.8 + 0.2*(Speed[P[i]]+1)); Speed[P[i]]++; Score[num][P[i]] = score; } for (int i = 0; i < Score.size(); i++) { int score = 0; for (int j = 0; j < n; j++) { score += Score[i][j]; } Rank.push_back(make_pair(score,i)); } sort(Rank.begin(), Rank.end()); reverse(Rank.begin(), Rank.end()); for (int i = 0; i < Score.size(); i++) { cout << i + 1 << " " << Name[Rank[i].second] << " "; for (int j = 0; j < n; j++) { if (j)cout << " "; cout << Score[Rank[i].second][j]; } cout << " " << Rank[i].first << endl; } return 0; }