Codeforces Round #317 [AimFund Thanks-Round] (Div. 2) Order Book 模拟
2024-08-30 08:32:25
原题链接:http://codeforces.com/contest/572/problem/B
题意
很迷,自行看题。
题解
看懂题就会做了
代码
#include<iostream>
#include<cstring>
#include<algorithm>
#define MAX_N 100005
using namespace std; int n,s; struct exchange {
public:
bool ty;
int p, q;
double sp; exchange(bool t, int pp, int qq) : ty(t), p(pp), q(qq), sp((double) p / q) { } exchange() { }
}; bool cmp(exchange a,exchange b) {
if (a.ty == b.ty) {
if (a.ty)return a.p > b.p;
else return a.p < b.p;
}
return a.ty < b.ty;
} int buy[MAX_N];
int sell[MAX_N]; exchange E0[MAX_N],E1[MAX_N];
int tot0,tot1; bool cmp0(exchange a,exchange b){
return a.p>b.p;
} int main(){
cin.sync_with_stdio(false);
cin>>n>>s;
for(int i=;i<n;i++){
char t;
int p,q;
cin>>t>>p>>q;
if(t=='B')buy[p]+=q;
else sell[p]+=q;
}
for(int i=;i<MAX_N;i++)
if(sell[i])
E0[tot0++]=exchange(,i,sell[i]);
for(int i=;i<MAX_N;i++)
if(buy[i])
E1[tot1++]=exchange(,i,buy[i]);
sort(E0,E0+tot0,cmp);
sort(E1,E1+tot1,cmp);
sort(E0,E0+min(s,tot0),cmp0);
sort(E1,E1+min(s,tot1),cmp0);
for(int i=;i<min(s,tot0);i++)cout<<"S "<<E0[i].p<<" "<<E0[i].q<<endl;
for(int i=;i<min(s,tot1);i++)cout<<"B "<<E1[i].p<<" "<<E1[i].q<<endl;
return ;
}
最新文章
- css-css权威指南学习笔记7
- 解析 csv文件 java ***最爱那水货
- Introduction of Team Member
- OceanBase架构浅析(一)
- BZOJ1769 : [Ceoi2009]tri
- Leetcode: Data Stream as Disjoint Intervals &;&; Summary of TreeMap
- Linux系统性能分析工具
- Missing artifact com.sun:tools:jar:1.5.0
- Android中的双向链表
- Java复习第一天---Javascript的基本知识点
- 页面设计-数据列表 DataGrid
- python基础阶段 经典练习题 拾英札记(2)
- 一个炫字都不够??!!!手把手带你打造3D自定义view
- Windows Server 2008 R2 Enterprise x64 部署 nginx、tomcat、mysql
- 日志管理工具之logrotate
- no module named &#39;win32api&#39;问题
- ffmpeg 图像转视频 视频转图像
- 关于TP5.0搜索后分页
- linux学习第一天 (Linux就该这么学) 找到一本不错的Linux电子书,附《Linux就该这么学》章节目录
- Java之utf8中文编码转换