Files
python/GESP/Level5/GESP202309/20230902_1.cpp

36 lines
951 B
C++
Raw Normal View History

2025-08-30 18:35:01 +08:00
#include <bits/stdc++.h>
using namespace std;
const int N = 510;
int n;
int t[N], r[N];
int ans;
/*
此题采用贪心算法,从最后一个时段开始,选择在该时段内完成有奖励的小游戏中找奖励最大的完成,
时间复杂度为O(N^2)
*/
int main() {
cin >> n;
for (int i = 1; i <= n; i++)
cin >> t[i];
for (int i = 1; i <= n; i++)
cin >> r[i];
// 从最后一个时段开始枚举
for (int i = n; i >= 1; i--) {
int k = 0; // 找到i时段之内最大分值位置
int m = 0; // 最大分值
for (int j = 1; j <= n; j++) {
if (t[j] >= i && r[j] > m) {
m = r[j];
k = j;
}
}
if (k != 0) { // 如果找到了
ans += r[k]; // 加分
r[k] = 0; // 清零,防止重复
}
}
cout << ans << endl;
return 0;
}