#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;
bool cmp1(pair<int,int> a,pair<int,int> b){//根据价格逆序排序
return a.first>b.first;
}
bool cmp2(pair<int,int> a,pair<int,int> b){//根据价格正序排序
return a.first<b.first;
}
int main()
{
int n,s;
while(cin>>n>>s){
vector<pair<int,int>> resb,ress;
map<int,int> bb,ss;
for(int i=0;i<n;i++){//用map来记录数据,包括价格和数量合并
int price,num;
char c;
cin>>c>>price>>num;
if(c=='B') bb[price] += num;
if(c=='S') ss[price] += num;
}
for(auto i:bb)//将map数据导入vector,为了后续排序
resb.push_back(i);
for(auto i:ss)
ress.push_back(i);
sort(resb.begin(),resb.end(),cmp1);
sort(ress.begin(),ress.end(),cmp2);
if(s>=ress.size()){//逆序输出
for(int i=ress.size()-1;i>=0;i--)
cout<<'S'<<' '<<ress[i].first<<' '<<ress[i].second<<endl;
}else{
for(int i=s-1;i>=0;i--)
cout<<'S'<<' '<<ress[i].first<<' '<<ress[i].second<<endl;
}
if(s>=resb.size()){//逆序输出
for(auto i:resb)
cout<<'B'<<' '<<i.first<<' '<<i.second<<endl;
}else{
for(int i=0;i<s;i++)
cout<<'B'<<' '<<resb[i].first<<' '<<resb[i].second<<endl;
}
}
return 0;
}
京东-交易清单
最新推荐文章于 2024-04-21 21:20:25 发布