[完善代码]抢气球
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
教室的墙上挂满了气球,五颜六色,小朋友们非常喜欢。
刚一下课,小朋友们就打算去抢这些气球。每个气球在墙上都有一定的高度,只有当小朋友跳起来时,手能够到的高度大于等于气球的高度,小朋友才能摘到这个气球。为了公平起见,老师让跳的低的小朋友先摘,跳的高的小朋友后摘。小朋友都很贪心,每个小朋友在摘气球的时候都会把自己能摘的气球都摘掉。
很巧的是,小朋友们跳起来手能够着的高度都不一样,这样就不会有跳起来后高度相同的小朋友之间发生争执了。
一共有 n 个小朋友,m 个气球,求每个小朋友最多能摘多少个气球。(n,m≤100000)
样例输入
10 10
1 2 3 4 5 6 7 8 9 10
3 1 4 6 7 8 9 9 4 12
样例输出
1
0
1
2
0
1
1
1
2
0
#include <iostream>
#include <algorithm>
using namespace std;
struct Node {
int h, id;
} stu[100005];
bool cmp(Node p1, Node p2) {
return p1.h < p2.h;
}
int ball[100005], ans[100005];
int main() {
int n, m;
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> stu[i].h;
stu[i].id = i;
}
for (int i = 0; i < m; i++) {
cin >> ball[i];
}
sort(stu, stu + n, cmp);
//
for (int i = 0; i < n; i++) {
cout << ans[i] << endl;
}
return 0;
}
【周天10:30】10月27日
- Status
- Done
- Problem
- 5
- Open Since
- 2024-10-27 10:45
- Deadline
- 2024-11-3 23:59
- Extension
- 24 hour(s)