結果
| 問題 |
No.447 ゆきこーだーの雨と雪 (2)
|
| ユーザー |
ikd
|
| 提出日時 | 2016-11-18 23:35:16 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,524 bytes |
| コンパイル時間 | 1,356 ms |
| コンパイル使用メモリ | 104,948 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-11-26 08:41:15 |
| 合計ジャッジ時間 | 4,860 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 1 RE * 2 |
| other | WA * 5 RE * 20 |
ソースコード
#include<iostream>
#include<queue>
#include<tuple>
#include<algorithm>
#include<set>
#include<map>
using namespace std;
const double hoge=1e-6;
int calc(int N, int K){
return 50*N+(int)(hoge+(50*N)/(0.8+0.2*K));
}
int main(){
int N;
cin>> N;
int L[N];
for(int i=0; i<N; i++) cin>> L[i];
int T;
cin>> T;
string name[T]; int P[T];
for(int i=0; i<T; i++){
char p;
cin>> name[i]>> p;
P[i]=p-'A';
}
vector<tuple<int, int, string>> v;
set<string> pa;
for(int i=0; i<T; i++){
pa.insert(name[i]);
}
int M=pa.size();// 参加者
map<string, int> s;
int sol[N];
for(int i=0; i<N; i++) sol[i]=1;
map<string, int> last;
map<string, int> ha;
vector<int> score[M];
for(int i=0; i<M; i++){
for(int j=0; j<N; j++){
score[i].push_back(0);
}
}
for(int i=0; i<T; i++){
s[name[i]]+=calc(L[P[i]], sol[P[i]]);
if(!ha.count(name[i])){
ha[name[i]]=ha.size()-1;
}
score[ha[name[i]]][P[i]]=calc(L[P[i]], sol[P[i]]);
sol[P[i]]++;
last[name[i]]=i;
}
for(auto it: s){
string NAME=it.first;
int SCORE=it.second;
v.push_back(make_tuple(SCORE, -last[NAME], NAME));
}
sort(v.rbegin(), v.rend());
for(int i=0; i<M; i++){
int SCORE, aiueo; string NAME;
tie(SCORE, aiueo, NAME)=v[i];
cout<< i+1<< " "<< NAME<< " ";
for(int j=0; j<N; j++){
cout<< score[ha[NAME]][j]<<" ";
}
cout<< SCORE<< endl;
}
return 0;
}
ikd