国内某大厂2022年最新算法题,考完了不太懂,求大神们指点。

一个村子里有n个村民,某一天村子得到了m数额的捐款,村长该如何将这m的捐款分给村民,可以让拥有相同资产的村民数量最多?相同的资产为多少?

输入规则:
第一行有一个非负数n,代表村民数量。
第二行有n个非负数,代表每个村民的原始资产数目。
第三行有一个非负数,代表捐款数目m。

输出规则:
一行两个非负数,第一个数代表分配捐款后拥有相同资产的村民数量,第二个数代表相同的资产数目是多少。

输入示例:
3
2 4 8
2

输出示例:
2 4
#2022春招##算法##算法工程师##2022秋招##Java#
全部评论
#include <bits/stdc++.h> using namespace std; int main() {     int n;     cin >> n;     vector<int> original(n);     for (int i = 0; i < n; i++) {         cin >> original[i];     }     sort(original.begin(), original.end());     int m;     cin >> m;     int maxc = 1, money = original[0];     int i = 0, j = 1;     int cost = 0;     while (j < n) {         while (j < n && cost + (original[j] - original[j - 1]) * (j - i) <= m) {             cost += (original[j] - original[j - 1]) * (j - i);             j++;         }         if (j - i > maxc) {             maxc = j - i;             money = original[j - 1];         }         cost -= original[j - 1] - original[i];         i++;     }     cout << maxc << endl;     cout << money << endl;     return 0; }
5 回复 分享
发布于 2022-06-25 14:05
会了吗求解答
点赞 回复 分享
发布于 2022-08-24 19:45 山东
谢邀,我做产品的
点赞 回复 分享
发布于 2022-06-20 09:11

相关推荐

不愿透露姓名的神秘牛友
07-09 12:30
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
评论
4
15
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务