
201412-3 集合竞价 ccf
发布日期:2021-05-04 09:01:52
浏览次数:26
分类:技术文章
本文共 1673 字,大约阅读时间需要 5 分钟。
问题描述
某股票交易所请你编写一个程序,根据开盘前客户提交的订单来确定某特定股票的开盘价和开盘成交量。 该程序的输入由很多行构成,每一行为一条记录,记录可能有以下几种: 1. buy p s 表示一个购买股票的买单,每手出价为p,购买股数为s。 2. sell p s 表示一个出售股票的卖单,每手出价为p,出售股数为s。 3. cancel i表示撤销第i行的记录。 如果开盘价为p0,则系统可以将所有出价至少为p0的买单和所有出价至多为p0的卖单进行匹配。因此,此时的开盘成交量为出价至少为p0的买单的总股数和所有出价至多为p0的卖单的总股数之间的较小值。 你的程序需要确定一个开盘价,使得开盘成交量尽可能地大。如果有多个符合条件的开盘价,你的程序应当输出最高的那一个。 输入格式 输入数据有任意多行,每一行是一条记录。保证输入合法。股数为不超过108的正整数,出价为精确到恰好小数点后两位的正实数,且不超过10000.00。 输出格式 你需要输出一行,包含两个数,以一个空格分隔。第一个数是开盘价,第二个是此开盘价下的成交量。开盘价需要精确到小数点后恰好两位。 样例输入 buy 9.25 100 buy 8.88 175 sell 9.00 1000 buy 9.00 400 sell 8.92 400 cancel 1 buy 100.00 50 样例输出 9.00 450 评测用例规模与约定 对于100%的数据,输入的行数不超过5000。#includeusing namespace std;struct record{ string opt; double price; int amount; bool isvalid;}rec[5004];int main(){ //freopen("1.txt","r",stdin); int i=0; while(cin>>rec[i].opt){ if(rec[i].opt=="cancel"){ rec[i].isvalid=false; int x; cin>>x; rec[x-1].isvalid=false; ++i; continue; } cin>>rec[i].price>>rec[i].amount; rec[i].isvalid=true; ++i; } int n=i; set pst; for(i=0;i ::iterator it=pst.begin();it!=pst.end();++it){ double p=*it; long long sumbuy=0,sumsell=0; for(i=0;i =p){ sumbuy+=rec[i].amount; } else if(rec[i].opt=="sell"&&rec[i].price<=p){ sumsell+=rec[i].amount; } } long long sum=min(sumsell,sumbuy);//成交量 if(sum>=maxsum){ maxsum=sum; ansp=p; } } printf("%.2lf %lld\n",ansp,maxsum); return 0;}
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年03月16日 02时32分38秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
jQuery练习t309,从0到1
2019-03-03
jQuery练习t310,从0到1
2019-03-03
jQuery练习t313,从0到1
2019-03-03
asp.net4.5练习~test4-2
2019-03-03
asp.net4.5练习~test4-4
2019-03-03
asp.net 4.5 练习~test4-10
2019-03-03
asp.net 4.5 练习~test5-2
2019-03-03
asp.net 4.5 练习~test5-6
2019-03-03
asp.net 4.5 练习~test5-7
2019-03-03
asp.net 4.5 练习~test9-6
2019-03-03
asp.net 4.5 练习~test14-5 写文件
2019-03-03
asp.net 4.5 练习~test14-6 streamwrite写文件
2019-03-03
asp.net 4.5 练习~test14-8
2019-03-03
asp.net 4.5 练习~test15-1 xml文件使用xslt转换格式
2019-03-03
asp.net代码练习 work007 ViewState[]的使用
2019-03-03
asp.net代码练习 work014 ClientScript属性
2019-03-03
asp.net代码练习 work015 回调技术
2019-03-03
asp.net代码练习 work016 fileupload文件上传
2019-03-03
asp.net代码练习 work021 DataReader的使用
2019-03-03