当前位置: 首页 > news >正文

第十四届蓝桥杯省赛大学C组(C/C++)三国游戏

原题链接:三国游戏

小蓝正在玩一款游戏。

游戏中魏蜀吴三个国家各自拥有一定数量的士兵 X,Y,Z(一开始可以认为都为 0)。

游戏有 n 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i 个事件发生时会分别让 X,Y,Z 增加 Ai,Bi,Ci。

当游戏结束时 (所有事件的发生与否已经确定),如果 X,Y,Z 的其中一个大于另外两个之和,我们认为其获胜。

例如,当 X>Y+Z时,我们认为魏国获胜。

小蓝想知道游戏结束时如果有其中一个国家获胜,最多发生了多少个事件?

如果不存在任何能让某国获胜的情况,请输出 −1

输入格式

输入的第一行包含一个整数 n。

第二行包含 n 个整数表示 Ai,相邻整数之间使用一个空格分隔。

第三行包含 n 个整数表示 Bi,相邻整数之间使用一个空格分隔。

第四行包含 n 个整数表示 Ci,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

数据范围

对于 40% 的评测用例,n≤500;
对于 70% 的评测用例,n≤5000;
对于所有评测用例,1≤n≤10^5,0≤Ai,Bi,Ci≤10^9。

输入样例:

3
1 2 2
2 3 2
1 0 7

输出样例:

2

样例解释

发生两个事件时,有两种不同的情况会出现获胜方。

发生 1,2 事件时蜀国获胜。

发生 1,3 事件时吴国获胜。


解题思路:

题目中说X>Y+Z时,会有获胜,那么就会有三种情况,魏蜀吴三个国家,三种情况,当魏国获胜时会有X>Y+Z,那么就是X-Y-Z>0,每一个事件发生对于魏国胜利判定就为Xi-Yi-Zi>0,每一个事件发生就用w[i]记录值,对w[i]进行由大到小的排序,从开始不断取数,当取到<0时,就是分界线,它前面的就都是>0的情况,即为魏国胜利的最大值。当蜀国胜利时,会有Y>X+Z,即Y-X-Z>0,每一个事件发生用w[i]记录,排序找分界点即可,吴国同理,最后在三个国家寻找最大值即可。

代码实现:

#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=1e5+5;
int a[N],b[N],c[N],w[N];//a,b,c第i个事件发生,各国人数变化,w[i]记录时间i发生三国获胜人数
int n;
int work(int x[],int y[],int z[]){for(int i=0;i<n;i++){w[i]=x[i]-y[i]-z[i];}sort(w,w+n,greater<int>());ll sum=0,res=-1;for(int i=0;i<n;i++){sum+=w[i];if(sum>0){//符合获胜条件res=i+1;}else{break;}}return res;
}
int main(){cin>>n;for(int i=0;i<n;i++)cin>>a[i];for(int i=0;i<n;i++)cin>>b[i];for(int i=0;i<n;i++)cin>>c[i];cout<<max({work(a,b,c),work(b,a,c),work(c,a,b)})<<endl;return 0;
}

相关文章:

第十四届蓝桥杯省赛大学C组(C/C++)三国游戏

原题链接&#xff1a;三国游戏 小蓝正在玩一款游戏。 游戏中魏蜀吴三个国家各自拥有一定数量的士兵 X,Y,Z&#xff08;一开始可以认为都为 0&#xff09;。 游戏有 n 个可能会发生的事件&#xff0c;每个事件之间相互独立且最多只会发生一次&#xff0c;当第 i 个事件发生时…...

java之static详细总结

static也叫静态&#xff0c;可以修饰成员变量、成员方法。 成员变量 按照有无static分为两种&#xff1a; 类变量&#xff1a;static修饰&#xff0c;属于类&#xff0c;与类一起加载一次&#xff0c;在内存中只有一份&#xff0c;会被类的全部对象共享实例变量&#xff08;…...

RabbitMQ3.13.x之六_RabbitMQ使用场景

RabbitMQ3.13.x之六_RabbitMQ使用场景 文章目录 RabbitMQ3.13.x之六_RabbitMQ使用场景1. 为什么选择 RabbitMQ&#xff1f;1. 可互操作2. 灵活3. 可靠 2. 常见用户案例1. 服务解耦2. 远程过程调用3. 流处理4. 物联网 1. 为什么选择 RabbitMQ&#xff1f; RabbitMQ 是一个可靠且…...

C++ 类和对象(初篇)

类的引入 C语言中&#xff0c;结构体中只能定义变量&#xff0c;在C中&#xff0c;结构体内不仅可以定义变量&#xff0c;也可以定义函数。 而为了区分C和C我们将结构体重新命名成class去定义 类的定义 标准格式&#xff1a; class className {// 类体&#xff1a;由成员函…...

微软推出GPT-4 Turbo优先使用权:Copilot for Microsoft 365商业用户享受无限制对话及增强图像生成能力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Spring Boot Actuator

概述 Spring Boot Actuator是Spring Boot的一个功能模块&#xff0c;用于提供生产环境中常见的监控和管理功能。它提供了各种端点&#xff08;endpoints&#xff09;&#xff0c;可以用于监视应用程序的运行状况、收集应用程序的指标数据以及与应用程序进行交互。 以下是Spri…...

我与C++的爱恋:类与对象(一)

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;我与C的爱恋 ​C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&…...

os模块篇(十八)

文章目录 os._exit(n)os.forkpty()os.kill(pid, sig, /)os.killpg(pgid, sig, /)os.nice(increment, /)os.pidfd_open(pid, flags0)os.plock(op, /)os.popen(cmd, moder, buffering-1)os.posix_spawn(path, argv, env, *, file_actionsNone, setpgroupNone, resetidsFalse, set…...

Oracle 数据库工作中常用知识点:sql语法与常用函数

.to_date()函数 to_date函数是Oracle特有的函数&#xff0c;该函数用来做日期转换。 举例&#xff1a; SELECT TO_DATE(‘2006-05-01 19:25:34’, ‘YYYY-MM-DD HH24:MI:SS’) FROM DUAL   日期格式&#xff1a;     YYYY、YYY、YY 分别代表4位、3位、2位的数字年    …...

软件工程

开发模型 瀑布模型 用于结构化模型开发 适用需求明确或者二次开发 原型模型 适用需求不明确 演化模型 增量模型 适用需求不明确 先做一块&#xff0c;再做一块&#xff0c;这样不断的对核心功能的审视&#xff0c;降低风险 螺旋模型 由多个模型组合成 适用需求不明…...

【御控物联】JavaScript JSON结构转换(17):数组To对象——键值互换属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、核心构件之转换映射三、案例之《JSON数组 To JSON对象》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换…...

免注册,ChatGPT可即时访问了!

AI又有啥进展&#xff1f;一起看看吧 Apple进军个人家用机器人 Apple在放弃自动驾驶汽车项目并推出混合现实头显后&#xff0c;正在进军个人机器人领域&#xff0c;处于开发家用环境机器人的早期阶段 报告中提到了两种可能的机器人设计。一种是移动机器人&#xff0c;可以跟…...

探索未来游戏:生成式人工智能AI如何重塑你的游戏世界?

生成式人工智能&#xff08;Generative AI&#xff09;正以前所未有的速度改变着各行各业的运作模式。其中&#xff0c;游戏产业作为科技应用的前沿阵地&#xff0c;正经历着前所未有的变革。本文将探讨生成式人工智能如何重塑游戏产业&#xff0c;以及这一变革背后的深远影响。…...

ubuntu23设置kibana后台启动服务

要在Ubuntu 23系统中设置Kibana作为系统服务&#xff0c;以便能够通过systemd管理其启动、停止、重启以及设置开机自动启动&#xff0c;可以按照以下步骤操作&#xff1a; 1. 创建Kibana systemd服务单元 创建一个名为kibana.service的文件在 /etc/systemd/system/ 目录下&am…...

身份证实名制、C#身份核验代码示例、身份证查询

在以前&#xff0c;企业采用人工审核的方式对线上用户进行身份信息真伪的核验&#xff0c;在用户上传身份信息后&#xff0c;人工进行后台审核&#xff0c;虽能满足企业对用户实名认证的需求&#xff0c;但效率慢、耗时长&#xff0c;且存在一定的人为误差&#xff0c;对高度PS…...

【leetcode面试经典150题】15.分发糖果(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…...

Elasticsearch如何选择版本

不同版本的ES差异非常大&#xff0c;包括不局限于ES语法、架构、API、集群搭建等等。这些差异足以导致不同版本是否能满足你的业务场景以及后续开发维护成本等各种问题。 先说结论&#xff0c;以个人实践经验及综合考虑推荐使用 7.x 版本中的 7.10版本 ES版本对比 以下是通过…...

P8749 [蓝桥杯 2021 省 B] 杨辉三角形

[蓝桥杯 2021 省 B] 杨辉三角形 题目描述 下面的图形是著名的杨辉三角形: 如果我们按从上到下、从左到右的顺序把所有数排成一列&#xff0c;可以得到如下数列&#xff1a; 1 , 1 , 1 , 1 , 2 , 1 , 1 , 3 , 3 , 1 , 1 , 4 , 6 , 4 , 1 , … 1,1,1,1,2,1,1,3,3,1,1,4,6,4,1, …...

MySQL数据库——1.创建数据库

在 MySQL 数据库中&#xff0c;要创建一个新的数据库&#xff0c;可以使用 SQL 命令 CREATE DATABASE。创建数据库是管理数据的第一步&#xff0c;它提供了一个容器&#xff0c;用于存储表、视图、存储过程等数据库对象。 示例&#xff1a; CREATE DATABASE my_database; 在…...

计算机视觉研究院 | Drone-YOLO:一种有效的无人机图像目标检测

本文来源公众号“计算机视觉研究院”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;Drone-YOLO&#xff1a;一种有效的无人机图像目标检测 无人机图像中的目标检测是各个研究领域的重要基础。然而&#xff0c;无人机图像带来了独…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码&#xff1a;冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...