結果
問題 | No.447 ゆきこーだーの雨と雪 (2) |
ユーザー |
![]() |
提出日時 | 2017-05-18 10:00:29 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 307 ms / 2,000 ms |
コード長 | 1,172 bytes |
コンパイル時間 | 1,550 ms |
コンパイル使用メモリ | 143,816 KB |
最終ジャッジ日時 | 2025-01-05 00:21:45 |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 25 |
ソースコード
#include <cstdio>#include <cstring>#include <cmath>#include <random>#include <vector>#include <algorithm>#include <array>#include <functional>#include <utility>#include <regex>#include <tuple>#include <map>using namespace std;int main(){int n;-scanf("%d",&n);vector<int> ar(n,1);vector<int> l(n);for(auto &i:l){-scanf("%d",&i);}int t;-scanf("%d",&t);map<string,tuple<array<int,26>,int,int>> nss;for(int i=0;i<t;i++){char _name[20],p;-scanf("%s %c",_name,&p);string name=_name;p-='A';if(nss.count(name)==0){auto& t=nss[name];get<0>(t).fill(0);get<1>(t)=0;}auto& t=nss[name];int score=50*l[p]+50*l[p]/(0.8+0.2*ar[p]);get<0>(t)[p]+=score;get<1>(t)+=score;get<2>(t)=i;ar[p]++;}for(int i=1;!nss.empty();i++){auto it=max_element(nss.begin(),nss.end(),[](auto a,auto b){return get<1>(a.second)==get<1>(b.second)?get<2>(a.second)>get<2>(b.second):get<1>(a.second)<get<1>(b.second);});auto t=*it;printf("%d %s ",i,t.first.c_str());for(int i=0;i<n;i++){printf("%d ",get<0>(t.second)[i]);}printf("%d\n",get<1>(t.second));nss.erase(it);}return 0;}