#include #include using namespace std; using namespace atcoder; typedef long long ll; typedef long double ld; #define REP(i, n) for (int i = 0; i < (n); ++i) #define REPR(i, n) for (int i = n - 1; i >= 0; --i) #define FOR(i, m, n) for (int i = m; i < n; ++i) #define FORR(i, m, n) for (int i = m; i >= n; --i) #define ALL(v) (v).begin(),(v).end() #define ALLR(v) (v).rbegin(),(v).rend() #define fi first #define se second #define PB push_back #define EB emplace_back template using PQ = priority_queue; template using QP = priority_queue,greater>; templatevoid debug(const T &v,ll h,ll w){for(ll i=0;ivoid debug(const T &v,ll n){for(ll i=0;ivoid debug(const vector&v){debug(v,v.size());} templatevoid debug(const vector>&v){for(auto &vv:v)debug(vv,vv.size());} templatevoid debug(stack st){while(!st.empty()){cerr<void debug(queue st){while(!st.empty()){cerr<void debug(deque st){while(!st.empty()){cerr<void debug(PQ st){while(!st.empty()){cerr<void debug(QP st){while(!st.empty()){cerr<void debug(const set&v){for(auto z:v)cerr<void debug(const multiset&v){for(auto z:v)cerr<void debug(const array &a){for(auto z:a)cerr<void debug(const map&v){for(auto z:v)cerr<<"["<void foo(Head&& head, Tail&&... tail){cerr << head << " ";foo(move(tail)...);} templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> n; vector l(n); REP(i,n) cin >> l[i]; int t;cin >> t; vector a(n,1); map> mp; map tm; REP(i,t){ string s;cin >> s; char p;cin >> p; if(!mp.count(s)) mp[s].resize(n); mp[s][p-'A']+=f(l[p-'A'],a[p-'A']); a[p-'A']++; tm[s]=i; // debug(mp[s]); } vector> x; for(auto [u,v]:mp){ int sum=0; for(auto vv:v) sum+=vv; x.PB({-sum,tm[u],u}); } sort(ALL(x)); REP(i,x.size()){ auto [u,v,w]=x[i]; cout << i+1 << " " << w << " "; REP(j,n) cout << mp[w][j] << " "; cout << -u << endl; } }