結果
| 問題 |
No.447 ゆきこーだーの雨と雪 (2)
|
| ユーザー |
|
| 提出日時 | 2020-10-30 23:27:20 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 26 ms / 2,000 ms |
| コード長 | 1,352 bytes |
| コンパイル時間 | 2,721 ms |
| コンパイル使用メモリ | 234,576 KB |
| 最終ジャッジ日時 | 2025-01-15 18:06:07 |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 25 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i=0; i<(int)(n); i++)
#define FOR(i,b,e) for (int i=(int)(b); i<(int)(e); i++)
#define ALL(x) (x).begin(), (x).end()
const double PI = acos(-1);
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector<int> level(n);
REP (i, n) cin >> level[i];
int t;
cin >> t;
vector<vector<string> > acs(n);
map<string, long long> sum;
map<string, vector<long long> > scores;
map<string, int> submission;
REP (i, t) {
string name;
char p;
cin >> name >> p;
int j = p - 'A';
acs[j].push_back(name);
sum[name] += 50 * level[j];
if (!scores[name].size()) {
scores[name].resize(n);
}
scores[name][j] += 50 * level[j];
submission[name] = i;
}
REP (i, n) {
REP (j, acs[i].size()) {
sum[acs[i][j]] += 250 * level[i] / (5 + j);
scores[acs[i][j]][i] += 250 * level[i] / (5 + j);
}
}
vector<tuple<long long, int, string> > v;
for (auto &[name, points]: sum) {
v.emplace_back(-points, submission[name], name);
}
sort(v.begin(), v.end());
REP (i, v.size()) {
long long x;
int y;
string z;
tie(x, y, z) = v[i];
cout << (i+1) << " " << z << " ";
REP (j, n)
cout << scores[z][j] << " ";
cout << sum[z] << endl;
}
return 0;
}