学生分组

题目描述

有 n 组学生,给出初始时每组中的学生个数,再给出每组学生人数的上界 R 和下界 L (L≤R),每次你可以在某组中选出一个学生把他安排到另外一组中,问最少要多少次才可以使 N 组学生的人数都在 [L,R] 中。

输入格式

第一行一个整数 n,表示学生组数;

第二行 n 个整数,表示每组的学生个数;

第三行两个整数 L,R,表示下界和上界。

输出格式

一个数,表示最少的交换次数,如果不能满足题目条件输出 −1。

输入输出样例

输入 #1

2
10 20
10 15

输出 #1

5

说明/提示

数据范围及约定

对于全部数据,保证 1≤n≤50。

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;int main() {int n; // 定义变量n,表示学生组数cin >> n; // 从标准输入读取学生组数vector<int> students(n); // 定义一个大小为n的向量,存储每组学生数for (int i = 0; i < n; i++) {cin >> students[i]; // 从标准输入读取每组的学生数}int L, R; // 定义变量L和R,表示学生数的下界和上界cin >> L >> R; // 从标准输入读取学生数的下界和上界int total_students = 0; // 定义变量total_students,用于存储所有学生的总数for (int i = 0; i < n; i++) {total_students += students[i]; // 计算所有学生的总数}// 检查总学生数是否在上下界范围内if (total_students < L * n || total_students > R * n) {cout << -1 << endl; // 如果不在范围内,输出-1并结束程序return 0;}int target = (L + R) / 2; // 计算目标学生数,尽量接近(L + R) / 2int swaps1 = 0, swaps2 = 0, swap = 0; // 定义变量swaps1和swaps2,分别用于存储需要增加和减少的学生数,swap用于存储最终的交换次数// 遍历每组学生数,计算需要增加或减少的学生数for (int i = 0; i < n; i++) {if (students[i] < L) {swaps1 += L - students[i]; // 如果学生数小于下界,计算需要增加的学生数} else if (students[i] > R) {swaps2 += students[i] - R; // 如果学生数大于上界,计算需要减少的学生数}swap = max(swaps1, swaps2); // 取需要增加和减少的学生数的最大值作为最终的交换次数}cout << swap << endl; // 输出最少的交换次数return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/31448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1台SW工作站5人同时使用能实现吗

在当今的数字化时代&#xff0c;高效的工作方式和技术创新是企业竞争力的重要组成部分。SolidWorks作为一款功能强大的三维设计软件&#xff0c;广泛应用于机械、电子、建筑等多个领域。然而&#xff0c;随着企业规模的扩大和团队人数的增加&#xff0c;如何充分利用有限的资源…

关于undo的问题

以下都查看下 undo保留时间&#xff1a; show parameter undo; 查UNDO段状态及自动调整的保留时间命令&#xff1a; select BEGIN_TIME,END_TIME,MAXQUERYLEN,MAXQUERYSQLID,TUNED_UNDORETENTIONfrom V$UNDOSTAT Order By begin_time Desc; 查UNDO段EXPIRED等使用情况&#…

大模型网信办备案全网最详细流程【附附件】

本文要点&#xff1a;大模型备案最详细说明&#xff0c;大模型备案条件有哪些&#xff0c;《算法安全自评估报告》模板&#xff0c;大模型算法备案&#xff0c;大模型上线备案&#xff0c;生成式人工智能(大语言模型)安全评估要点&#xff0c;网信办大模型备案。 大模型备案安…

Linux企业 集群批量管理-秘钥认证

集群批量管理-秘钥认证 概述 管理更加轻松&#xff1a;两个节点&#xff0c;通过秘钥认证形成进行访问&#xff0c;不需要输入密码&#xff0c;单向服务要求&#xff08;应用场景&#xff09;&#xff1a; 一些服务在使用前要求我们做秘钥认证 手动写批量管理脚本名字&#x…

【Python入门与进阶】Python 中的正则表达式

Python 中的正则表达式是通过内置模块 re 来实现的。正则表达式是一种用于模式匹配和文本处理的强大工具&#xff0c;可以用于查找、替换、分割字符串等操作。 基本用法 以下是 re 模块中一些常用的函数和方法&#xff1a; re.compile(pattern, flags0)&#xff1a;编译正则…

来自 Kubecon Paris 的快讯

一年一度的 KubeconEU 审查时间到了——它未经过滤&#xff0c;偶尔不受 CNCF 的欢迎——但剧透警告&#xff0c;巴黎取得了巨大的成功。我们总是爱这里的人&#xff0c;我们并不总是爱场地或演出管理&#xff0c;但巴黎是一场胜利&#xff0c;更重要的是&#xff0c;Kubernete…

德国慕尼黑智慧能源展去了多少家国内充电企业?

无论是为了突破本土市场的局限&#xff0c;出海开拓更广阔的国际市场需求&#xff0c;增加销售额&#xff0c;分散市场风险&#xff0c;还是为了通过出海获得国际经验后以反哺国内市场。 各大行业都出现了“要么出海&#xff0c;要么出局”的声音。扬帆出海&#xff0c;参与全球…

C语言 | Leetcode C语言题解之第155题最小栈

题目&#xff1a; 题解&#xff1a; //单调栈 单调递减 typedef struct {//正常 stackint stack[10000];int stackTop;//辅助 stackint minStack[10000];int minStackTop; } MinStack;MinStack* minStackCreate() {MinStack* newStack (MinStack *) malloc(sizeof(MinS…

零基础入门办公软件速成学习 沈阳电脑办公软件培训

专业指导&#xff1a;由专业的培训师或讲师提供指导&#xff0c;确保员工能够全面、系统地学习软件的各种功能和技巧。 定制课程&#xff1a;根据公司需求和员工现有水平定制课程内容&#xff0c;确保培训的针对性和实用性。 互动学习&#xff1a;通过实时演示、练习和答疑环节…

Android SurfaceFlinger——SF与HWC交互流程(六)

在上一篇 HWC2On1Adapter 初始化完成后&#xff0c;调用 initWithDevice() 实例化 HwcHal 对象&#xff0c;然后创建高级接口&#xff08;IComposer&#xff09;&#xff0c;使得调用者能够通过这个接口与硬件进行交互。这里我们就来看一下 HwcHal 和 IComposer 的初始化流程。…

到底什么是载波聚合?

载波聚合技术是无线通信系统中的一项关键创新&#xff0c;它极大地提升了数据传输的效率和速度。 这项技术的核心思想其实相当直观&#xff0c;即&#xff1a;如果能够将多个独立的通信路径或连接聚合起来&#xff0c;那么相比单一路径&#xff0c;就能够传输更多的信息。 这就…

mysql设置密码复杂度策略,登录失败次数限制

在配置文件中加入如下配置&#xff0c;重启mysql服务 [mysqld] #密码复杂度插件 plugin-load-addvalidate_password.so validate-passwordFORCE_PLUS_PERMANENT validate_password_policy2 # 0简单 1普通 2困难 validate_password_length9 # 密码长度限制 #登录失败次数、时间…

描述React Hooks中的useMemo和useCallback的区别和用途。

React Hooks API中的useMemo和useCallback都是用于优化性能的钩子&#xff0c;但它们的用途和工作方式略有不同&#xff1a; 推荐大家看看我过往的文章 useMemo useMemo是一个性能优化钩子&#xff0c;它返回一个记忆化的值。useMemo可以避免在组件渲染时进行昂贵的计算或操作…

一文读懂数据仓库ODS层

数据仓库一般分为三层&#xff0c;分别为数据贴源层&#xff08;ODS&#xff0c;Operation Data Store&#xff09;、数据公共层&#xff08;CDM&#xff0c;Common Data Model&#xff09;和数据应用层&#xff08;ADS&#xff0c;Application Data Service&#xff09;。其中…

方舟云康亏损收窄:三年近10亿销售成本,平均付费及月活仍大幅承压

《港湾商业观察》施子夫 三度递表后&#xff0c;终于通过聆讯&#xff0c;方舟云康控股有限公司(以下简称&#xff0c;方舟云康)有望近期内挂牌港交所。方舟云康的国内运营主体为广州方舟云康信息科技集团有限公司、广州方舟医药有限公司。 值得关注的是&#xff0c;亏损的难…

shiro整合springboot报错--解决方法

代码下载 报错信息 //测试权限认证访问http://localhost:8080/myController/userLogin?namezhangsan&pwd123报错 org.apache.shiro.UnavailableSecurityManagerException: No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.ut…

Python项目Django框架发布相关

1.Nginx配置 server { listen 80; server_name 域名地址;location / { uwsgi_pass 0.0.0.0:4563;// 运行地址include uwsgi_params;} location /static{ // 静态文件路径alias /www/wwwroot/djserverproject/static;}}server { listen 443; server_name 域名地址;ssl_certific…

@/utils/china里面的详细数据

/utils/china里面的详细数据 (function (root, factory) {if (typeof define "function" && define.amd) {// AMD. Register as an anonymous module.define(["exports", "echarts"], factory);} else if (typeof exports "obje…

TS中获取函数的参数类型、函数的返回值类型、构造函数的参数类型

背景&#xff1a;通常在业务中我们需要封装一些公共函数或者引入第三方库的函数、类&#xff0c;在TS语法环境下&#xff0c;如何在调用函数处给定义的变量进行类型定义&#xff1f;是需要全局定义变量类型亦或是各自定义&#xff1f;当然都不需要&#xff0c;我们可以通过ts中…

整理好了!2024年最常见 20 道设计模式面试题(十)

上一篇地址&#xff1a;整理好了&#xff01;2024年最常见 20 道设计模式面试题&#xff08;九&#xff09;-CSDN博客 十九、访问者模式是如何分离算法与操作对象的&#xff1f; 访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许我…