#include #include #include #include #include #include #include #include #include #include #include static const int MOD = 1000000007; using ll = long long; using u32 = uint32_t; using namespace std; template constexpr T INF = ::numeric_limits::max()/32*15+208; int main() { int n; cin >> n; vector v(n); for (auto &&i : v) scanf("%d", &i); vector solved(n); map m; int cur = 0; map minv; vector> table(0); int t; cin >> t; while(t--){ string s; char c; cin >> s >> c; if(!m.count(s)) { minv[cur] = s; m[s] = cur++; table.emplace_back(n+2); table[m[s]][n] = cur-1; } int id = c - 'A'; table[m[s]][id] = 50*v[id]+500*v[id]/(10+2*solved[id]); table[m[s]][n+1] += (50*v[id]+500*v[id]/(10+2*solved[id]))*10000; table[m[s]][n+1] = table[m[s]][n+1]/10000*10000 + t; solved[id]++; } sort(table.begin(),table.end(), [](vector &a, vector &b){ return a.back() > b.back(); }); for (int i = 0; i < cur; ++i) { cout << i+1 << " " << minv[table[i][n]] << " "; for (int j = 0; j < n; ++j) { cout << table[i][j] << " "; } cout << table[i][n+1]/10000 << "\n"; } return 0; }