国内某大厂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-06-20 09:11
国泰君安
校招火热招聘中
官网直投
会了吗求解答
点赞
送花
回复 分享
发布于 2022-08-24 19:45 山东

相关推荐

4 15 评论
分享
牛客网
牛客企业服务