結果
問題 |
No.628 Tagの勢い
|
ユーザー |
|
提出日時 | 2020-04-02 04:34:04 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 841 bytes |
コンパイル時間 | 964 ms |
コンパイル使用メモリ | 83,896 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-27 16:23:08 |
合計ジャッジ時間 | 1,879 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
ソースコード
#include <algorithm> #include <iostream> #include <map> #include <vector> using namespace std; using P = pair<int,string>; bool cmp(P x,P y){ if(x.first>y.first)return true; else if(x.first==y.first && x.second<y.second)return true; else return false; } int main(){ int N,id=0; cin >> N; string tag; map<string,int> tags; for(int i=0,n,M,S;i<N;i++){ cin >> n >> M >> S; for(int m=0;m<M;m++){ cin >> tag; tags[tag]+=S; } } vector<P> ranking(tags.size()); for(auto it=tags.begin();it!=tags.end();it++){ ranking[id++]=make_pair((*it).second,(*it).first); } sort(ranking.begin(),ranking.end(),cmp); for(int i=0;i<10 && i<ranking.size();i++){ cout << ranking[i].second << " " << ranking[i].first << endl; } return 0; }