集合竞价

2023-10-27

#include<cstdio>
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<vector> 
#include<string>
#include<queue>
#include<map>
using namespace std;
struct Node
{
    int type;     //0表示buy
    double p;
    int s; 
}node[5005],buy[5005],sell[5005];
bool BUY(Node x,Node y)    //价格越高优先级越高,价格一样,股数越高越高 
{
    if(x.p != y.p)
        return x.p>y.p;
    else
        return x.s>y.s; 
}
bool SELL(Node x,Node y)    //价格越低优先级越高,价格一样,股数越高越高 
{
    if(x.p != y.p)
        return x.p<y.p;
    else
        return x.s>y.s; 
}
int min(int x,int y)
{
    if(x<y)    return x;
    else    return y;
}
int main()
{
    string str;
    double p;
    int s,pos;
    int h=0;
    while(cin>>str)
    {
        if(str == "buy")    
        {
            cin>>p>>s;
            node[h].type = 0;
            node[h].p = p;
            node[h].s = s;
            h++;
        }
        else if(str == "sell")    
        {
            cin>>p>>s;
            node[h].type = 1;
            node[h].p = p;
            node[h].s = s;
            h++;
        }
        else
        {
            cin>>pos;
            for(int i=pos;i<h;i++)
                node[i-1] = node[i];
            h--; 
        }
    }
    int h1=0,h2=0;
    for(int i=0;i<h;i++)
    {
        if(node[i].type == 0)
        {
            buy[h1]= node[i];
            h1++;
        }
        else
        {
            sell[h2] = node[i];
            h2++;
        }
    }
    sort(buy,buy+h1,BUY);
    sort(sell,sell+h2,SELL);
    double price=-100;
    int i=0,j=0,k=0,maxs=-100;
    //如果有多个符合条件的开盘价,你的程序应当输出最高的那一个。
    for(k=0;k<h1;k++)
    {
        double p0 = buy[k].p;
        int buy_sum=0,sell_sum=0;
        for(i=0;i<h1;i++)
        {
            if(buy[i].p>=p0)
                buy_sum+=buy[i].s;
            else
                break;
        }            
        for(i=0;i<h2;i++)
        {
            if(sell[i].p<=p0)
                sell_sum+=sell[i].s;
            else
                break;
        }
        int num = min(buy_sum,sell_sum);
        if(num>maxs)
        {
            maxs = num;
            price = p0;    //满足成交量最大情况下,最大的sell 
        }
        else if(num == maxs && p0>price)
            price = p0;
    }
    for(k=0;k<h2;k++)
    {
        double p0 = sell[k].p;
        int buy_sum=0,sell_sum=0;
        for(i=0;i<h1;i++)
        {
            if(buy[i].p>=p0)
                buy_sum+=buy[i].s;
            else
                break;
        }            
        for(i=0;i<h2;i++)
        {
            if(sell[i].p<=p0)
                sell_sum+=sell[i].s;
            else
                break;
        }
        int num = min(buy_sum,sell_sum);
        if(num>maxs)
        {
            maxs = num;
            price = p0;    //满足成交量最大情况下,最大的sell 
        }
        else if(num == maxs && p0>price)
            price = p0;
    }
    cout<<setiosflags(ios::fixed)<<setprecision(2);
    cout<<price;
    printf(" %d",maxs);
    return 0;
}

 

转载于:https://www.cnblogs.com/fzuhyj/p/10515504.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集合竞价 的相关文章

  • Linux--shell--3--()、(())、[]、[[]]、{}

    一 小括号 圆括号 1 单小括号 命令组 括号中的命令将会新开一个子shell顺序执行 所以括号中的变量不能够被脚本余下的部分使用 括号中多个命令之间用分号隔开 最后一个命令可以没有分号 各命令和括号之间不必有空格 命令替换 等同于cmd
  • 二级索引查询注意事项(2)--单表访问方法(三十七)

    前面说了explain参数的type代表访问数据库的方法 如果用主键和唯一二级索引 测试最快的const方法 若用普通索引 则是ref 还有ref or null range是代表区间查询 若用index则代表查询联合索引的非最左边索引 最
  • 3D建模Cocos Creator3D:发射器模块(ShapeModule)

    推荐 将 NSDT场景编辑器 加入你的3D工具链 3D工具集 NSDT简石数字孪生 发射器模块 ShapeModule 公有属性 属性 作用 position 相对于挂载节点的位置 rotation 相对于挂载节点的旋转 scale 相对于
  • 软件测试银行金融项目如何测?看看资深测试老鸟的总结,一篇足够...

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • iOS GitHub上排名前 100 的 Objective-C 项目简介

    主要对当前 GitHub 排名前 100 的项目做一个简单的简介 方便初学者快速了解到当前 Objective C 在 GitHub 的情况 GitHub 地址 https github com Aufree trip to iOS blo
  • 关于Unity创建项目时进度栏一直不动的问题

    关于Unity创建项目时进度栏一直不动的问题 近日在使用UNity过程中 创建一个新项目时 一直在转圈圈 是魔力转圈圈 一时半解不知是何原因 因为没有任何的提示 没有找到报错 关闭UNity Hub后 再次重启仍然会有这个问题出现 看了看项
  • Flink1.16 on Yarn hadoop3.1.1 提交任务失败解决

    一 背景 项目基于华为 mrs 平台 hadoop3 1 1 想升级 flink client 客户端从 1 11 0 到 1 16 0 1 11 0 已经用了两年了 flink 已经发布到了1 17 增加了很多新特性 速度和稳定性都会更好
  • 二叉链表实现二叉树

    1 题目描述 编写一个二叉链表类 试写出求二叉树结点数目和二叉树叶子节点的数目 只要写二叉链表的前序输入 先序中序后序输出 求节点数目和求叶子节点数目的方法 2 设计思路 二叉树一般多采用二叉链表 binary linked list 存储
  • 【101】西门子S7-200说明介绍

    一 西门子S7 200概述 SIMATIC S7 200 Micro 自成一体 结构紧凑 性能良好 功能强大 多种通讯方案 并且具有操作简便的硬件和软件 当然还有更多特点 SIMATIC S7 200 Micro PLC具有统一的模块化设计
  • 程序员提高代码能力的方法看这一篇就够了

    程序员的代码能力其实不应该仅仅局限于代码本身 而是围绕写出好代码所需的综合能力 你可以从以下几个能力维度谈谈如何提高代码能力 一 计算机基础知识 作为程序员 需要具备以下计算机基础知识 1 数据结构和算法 这是编写高效代码的基础 程序员需要
  • NMOS和PMOS使用总结

    MOS管应用电压的极性和我们普通的晶体三极管相同 N沟道的类似NPN晶体三极管 漏极D接正极 源极S接负极 栅极G正电压时导电沟道建立 N沟道MOS管开始工作 同样P道的类似PNP晶体三极管 漏极D接负极 源极S接正极 栅极G负电压时 导电
  • SVC分类经典Iris数据集

    今天做了一个用SVC分类经典Iris数据集的训练 在数据预处理上出了点奇怪的岔子 对原始数据中的string转到float这步一直不成功 转换函数没错 用的是load txt里面的converters 一直报错 但是被我机智 愚蠢 地手动处
  • Tomcat安装部署及多实例部署介绍

    Tomcat 一 Tomcat相关简介 二 Tomcat安装 三 多实例 一 Tomcat相关简介 1 Tomcat简介 Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个servelet容器 按照Sun micros
  • word如何首页和目录不编辑页码

    按照下面的方法 从第二页或者是需要的地方设置页码即可 页码从任意页开始 1 将光标定位于需要开始编页码的页首位置 2 选择 插入 分隔符 打开 分隔符 对话框 在 分隔符类型 下单击选中 下一页 单选钮 3 选择 视图 页眉和页脚 并将光标
  • 作为程序员,该如何提升自己的编程水平?

    1500字3个角度说明如何提升编程水平 一 如果你是初学者 这几个方法给你 1 1 刻意练习 在编写代码之前 首先我们可以先了解这门编程语言的基本用法和常用的概念 编写基本的程序 一般来说敲代码是步骤是 明确需求 设计程序 编写代码 完善程
  • #35. 二叉树遍历(flist)(4月3日)

    include
  • Java基础篇:如何使用 break 退出循环

    在 Java 中 break 语句有 3 种作用 第一 你已经看到 在 switch 语句中 它被用来终止 一个语句序列 第二 它能被用来退出一个循环 第三 它能作为一种 先进 的goto 语句来使用 下面对最后 2 种用法进行解释 使用
  • 【Java】利用 PDF 多页模板生成 PDF 并导出

    一 所需要的依赖
  • 数据中心托管有什么好处?

    1 内置可扩展性 除了能够节省建设一个新的数据中心的资金 当涉及到可扩展的计算资源时 得益于数据中心托管服务的固有灵活性 还可以让用户节省更多的成本费用 托管服务提供商能够根据用户需求扩展或减少他们所需要的容量 这样 既有效利用了资源 还能
  • 使用eclipse创建一个图书管理系统(2)---------逻辑的实现

    就像使用C语言写代码一样 比如要用 C语言写一个小游戏的代码 我们的逻辑实现是在哪里实现的啊 是不是在一个test c源文件里面啊 没错 就是的 在之前的文章里 我说过我定义的Main函数就像C语言里的test c文件一样 所以 为了不打自

随机推荐

  • web安全之文件上传漏洞攻击与防范方法

    一 文件上传漏洞与WebShell的关系 文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行 这里上传的文件可以是木马 病毒 恶意脚本或者WebShell等 这种攻击方式是最为直接和有效的 部分文件上传漏洞的利用技术门槛非常的低
  • HTTP 协议

    1 HTTP 介绍 2 HTTP 请求 和 响应 3 HTTP 请求方法 4 HTTP 状态码 5 HTTP 头信息 6 URL 和 URI 7 静态资源 和 动态资源 1 HTTP 介绍 HTTP协议 是 超文本传输协议 的缩写 是用于从
  • “该应用程序的数字签名无法验证......”

    该应用程序的数字签名无法验证 是否运行该应用程序 登录服务器后运行某模块时 总出现这个提示 且对话框点不动 解决 开始 控制面板 双击JAVA 打开JAVA面板 高级 安全 混合代码 沙箱代码与可信代码 安全验证 禁用验证 不推荐 图片见附
  • 【k8s故障处理篇】解决k8s集群中kubectl命令补全问题

    k8s故障处理篇 解决k8s集群中kubectl命令补全问题 一 查看k8s的版本 二 安装相关软件包 三 配置相关环境变量 四 测试tab键补齐命令 一 查看k8s的版本 查看当前k8s版本 当前环境的k8s版本为v1 16 2 本方法也
  • 解决网页不能粘贴的问题

    最近要完成老师布置的英语作业 在网站上写作文并提交 但是老师设置了 不能复制粘贴 本来在word文档里写完打好草稿了 现在却只能重新打一遍 于是我尝试解决这个问题 看看能不能粘贴上去 通过查阅资料 了解了网页的基本知识 于是探索出了如下步骤
  • 在React项目中实现调用摄像头拍照的功能

    文章目录 前言 一 如何调用摄像头 二 操作步骤 1 准备dom元素 2 添加打开和关闭摄像头的事件 3 获取图片 base64格式 三 demo 总结 前言 在日常开发中可能会遇到需要调用摄像头拍照的功能 下面为大家讲解一下在react项
  • Qt如何设置界面透明

    1 设置主窗体透明 但是窗体上的控件不透明 setAttribute Qt WA TranslucentBackground true void paintEvent QPaintEvent event QPainter painter t
  • Go入门:切片 slice,引用类型

    Go 语言中 slice表示一个拥有相同类型元素的可变长度序列 slice通常被写为 T 其中元素的类型都是T 它看上去就像没有长度的数组类型 数组和slice其实是紧密关联的 var fslice int 和声明array一样 只是少了长
  • mac版Idea快捷键

    option command L 格式化 option command M 提取方法 option command T 代码块加try catch fn shift f6 修改变量 方法名 shift command 折叠代码 shift
  • 从Java到Go:使用Go语言和Gin Web框架构建博客系统

    目录 1 Go语言基本介绍 2 从Java到Go 语法和特性对比 2 1 变量和类型 2 2 控制结构
  • js什么是事件冒泡并阻止事件冒泡

    事件冒泡 当事件发生后 这个事件就要开始传播 从里到外或者从外向里 为什么要传播呢 因为事件源本身 可能 并没有处理事件的能力 即处理事件的函数 方法 并未绑定在该事件源上 例如我们点击一个按钮时 就会产生一个click事件 但这个按钮本身
  • 【满分】【华为OD机试真题2023 JS】预定酒店

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 预定酒店 知识点排序 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 放暑假了 小明决定到某旅游景点游玩 他在网上搜索到了各种价位的酒店 长度为n的数组A 他的心
  • 区块链的证明机制(Proof Of Work POW)学习心得(参考luotuo视频学习)

    在区块链学习中 参考luotuo的哔哩哔哩视频 区块链增加模块时是要经过计算的 只有计算到 开头n位为0 符合这个链条的规则时 才会将这个新的区块加入到区块链当中 这个计算hash的方法应该被加以判断 也就是增加一个方法来计算符合区块链难度
  • CSDN博客如何设置的更美观和贴好看的代码

    之前学习写博客时想要写出整洁的博文 贴好看的代码 所以百度了好多位小可爱的方法 奈何我太笨可能对我帮助不是很大 依然是一头雾水 我是想要找到那种黑色背景代码高亮的方式 后来自己慢慢琢磨出来了 所以把我的方法分享一下 1 在博客设置首页有博客
  • hive on spark 3.1.2集成spark3.0.0

    需要修改spark env sh 加上 export SPARK DIST CLASSPATH hadoop classpath 否则报错 2 14 51 56 117 INFO yarn ApplicationMaster Final a
  • 盘点2022年有影响力的五种顶级NFT头像

    盘点2022年15 个顶级NFT头像 NFT头像在去年风靡一时 作为一种简单的即插即用方法 任何人都可以将特征 身体 头部 背景等 加载到应用程序中以快速混合搭配 NFT 创建 因此它已成为制作头像比以往任何时候都容易 考虑到今年 NFT热
  • 美团外卖与饿了么竞品分析

    截至2020年3月 我国网上外卖用户规模达3 98亿 占网民整体的44 手机网上外卖用户规模达3 97亿 占手机网民整体的44 2 图片来源 前瞻网 2017 2019年 我国互联网餐饮外卖交易规模逐渐扩大 2019全年超7274亿元 互联
  • Web自动化测试面试

    一 Web 自动化测试 1 Selenium 中 hidden 或者是 display none 的元素是否可以定位到 不能 可以写 JavaScript 将标签中的 hidden 先改为 0 再定位元素 2 Selenium 中如何保证操
  • 安卓APP_ 布局(4) —— TableLayout表格布局

    摘自 安卓APP 布局 4 TableLayout表格布局 作者 丶PURSUING 发布时间 2021 04 11 22 55 50 网址 https blog csdn net weixin 44742824 article detai
  • 集合竞价

    include