牛客47744828号 level
获赞
3
粉丝
2
关注
0
看过 TA
13
Ohio State University Columbus
2023
算法工程师
IP属地:新加坡
暂未填写个人简介
私信
关注
一个村子里有n个村民,某一天村子得到了m数额的捐款,村长该如何将这m的捐款分给村民,可以让拥有相同资产的村民数量最多?相同的资产为多少?      输入规则:   第一行有一个非负数n,代表村民数量。   第二行有n个非负数,代表每个村民的原始资产数目。   第三行有一个非负数,代表捐款数目m。      输出规则:   一行两个非负数,第一个数代表分配捐款后拥有相同资产的村民数量,第二个数代表相同的资产数目是多少。      输入示例:   3   2 4 8   2      输出示例:   2 4
MingxZH:#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; }
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务