自己写lower_bound也能过,用STL的lower_bound不知道为什么第一个元素大于等于(题目数据的4)会被忽略,求大佬TAT
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 20005;
int tou[N], money[N];
int main()
{
int n, m;
int sum = 0;
cin >> n >> m;
for (int i = 0; i < n; i++)
{
cin >> tou[i];
}
for (int i = 0; i < m; i++)
{
cin >> money[i];
}
sort(money, money + m);
//sort(tou, tou + n); //不写这个就会出错!
for (int i = 0; i < n; i++)
{
int pos = lower_bound(money, money + m, tou[i]) - money;
if (money[pos] < tou[i])
{
cout << "you died!" << endl;
return 0;
}
sum += money[pos];
money[pos] = 0;
// sort(money, money + m, less<int>());
}
cout << sum << endl;
return 0;
}