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

每日一题之能量晶石

问题描述

暗影大帝被打败了,为了庆祝这来之不易的胜利,N 个光影村小伙伴们聚在一起,准备开一场盛大的庆功宴。庆功宴上,光影村的长老们为每个小伙伴准备了一些能量晶石,其中第 ii 个小伙伴获得了 Ai​ 个能量晶石。

可是,长老们分配的能量晶石数量并不相同。如果每个人最终得到的能量晶石数量不一样,一些小伙伴就会觉得不公平,可能会影响到庆功宴欢乐的气氛。

为了避免这种情况,小伙伴们决定互相帮助。每个小伙伴可以多次前往能量矿脉,每次前往都能为除自己以外的所有小伙伴额外带回一个能量晶石。但前往能量矿脉很消耗精力,大家都想尽可能少跑一趟。

那么,为了让所有小伙伴最终都拥有相同数量的能量晶石,至少需要前往能量矿脉多少次呢?

输入格式

第一行包含一个整数 N (1≤N≤105),表示光影村小伙伴的人数。

第二行包含 NN 个整数 A1,A2,…,AN​(1≤Ai≤109),表示每个小伙伴拥有的能量晶石数量。

输出格式

输出一个整数,表示为了让所有小伙伴最终都拥有相同数量的能量晶石,至少需要前往能量矿脉的次数。

#include <iostream>
#include<algorithm>
using namespace std;
using ll=long long;
int main()
{
  // 请在此输入您的代码
  ll n;
  cin>>n;
  ll a[n];
  ll minx=1e5;
  ll sum=0;
  for(int i=0;i<n;i++){
    cin>>a[i];
    minx=min(a[i],minx);
    sum+=a[i];
  }
  cout<<sum-n*minx;
  return 0;
}

思路都是除自己外的所有人都加1,那么相当于自己减1,。但是我感觉要是顺着加1的思路想的话,就是从最小向第二小的加,然后向第3小的加,比如给出的数是2 3 4 5。那么就是2先加到3,此时变成3 3 5 6,再一起加到5,变成5 5 5 8,再一起加到8,那么总次数就是6次。

然后这个题注意一下数据范围,要使用long long,我这里使用using进行定义哦

相关文章:

  • cursor中git提交记录出现 签出(已分离)
  • 反射、 Class类、JVM的类加载机制、Class的常用方法
  • 每日OJ_牛客_过桥_贪心+BFS_C++_Java
  • 51单片机汇编工程建立、仿真、调试全过程
  • 江科大51单片机笔记【15】直流电机驱动(PWM)
  • 图解AUTOSAR_CP_TcpIp
  • BFS比DFS更好理解「翻转二叉树」
  • 元宇宙与数字孪生
  • 基于Python懂车帝汽车数据分析平台(源码+lw+部署文档+讲解),源码可白嫖!
  • 《HTML + CSS + JS 打造炫酷轮播图详解》
  • 01 | Go 项目开发极速入门课介绍
  • C语言实现冒泡排序,超详解
  • 贝叶斯分层回归(Bayesian Hierarchical Regression)是一种基于贝叶斯统计理论的数据分析方法
  • TDengine SQL 函数
  • 《基于机器学习的DDoS攻击检测与防御系统设计与实现》开题报告
  • postgresql源码安装
  • Jetpack Paging 终极封装:简洁、通用、高性能的分页加载方案
  • 完整项目案例:基于Django的毕业设计选题管理系统(包含源码结构、核心代码及设计文档框架)
  • spring boot 发送邮件验证码
  • VSTO(C#)Excel开发4:打印设置
  • 龙湖集团:今年前4个月销售220.8亿元,4月新增两块土地储备
  • 要更加冷静地看待“东升西降”的判断
  • 上汽享道出行完成13亿元C轮融资,已启动港股IPO计划
  • 身临其境感受伟人思想力量,“马克思书房”在上海社科馆揭幕
  • 越秀地产前4个月销售额约411.2亿元,达年度销售目标的34.1%
  • 美联储主席:不打算先发制人地降息,将继续观望