代码拉取完成,页面将自动刷新
#include <algorithm>
#include <iostream>
#include <set>
using namespace std;
struct Node
{
int t, r;
bool operator<(const Node &oth) const
{
if (r == oth.r)
{
return t < oth.t;
}
return r > oth.r;
}
};
Node ns[505];
set<int> s;
int main()
{
int n, ans = 0;
cin >> n;
for (int i = 1; i <= n; i++)
{
s.insert(i);
cin >> ns[i].t;
}
for (int i = 1; i <= n; i++)
{
cin >> ns[i].r;
}
sort(ns + 1, ns + 1 + n);
for (int i = 1; i <= n; i++)
{
auto it = s.upper_bound(ns[i].t);
if (it == s.begin()) // 没有更早的时间可以做这个游戏
{
continue;
}
ans += ns[i].r, s.erase(--it);
}
cout << ans << endl;
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。