-
个人简介
#include #include #include
using namespace std;
struct Game { int T; int R; int index; };
bool compare(Game a, Game b) { return a.R > b.R; }
int main() { int n; cin >> n;
vector<int> T(n), R(n); vector<Game> games(n); for (int i = 0; i < n; ++i) { cin >> T[i]; games[i].T = T[i]; games[i].index = i; } for (int i = 0; i < n; ++i) { cin >> R[i]; games[i].R = R[i]; } sort(games.begin(), games.end(), compare); vector<int> dp(n + 1, -1); int totalReward = 0; for (const auto& game : games) { for (int t = game.T; t >= 1; --t) { if (dp[t] == -1) { dp[t] = game.index; totalReward += game.R; break; } } } cout << totalReward << endl; return 0;
}```language #include #include #include
using namespace std;
struct Game { int T; int R; int index; };
bool compare(Game a, Game b) { return a.R > b.R; }
int main() { int n; cin >> n;
vector<int> T(n), R(n); vector<Game> games(n); for (int i = 0; i < n; ++i) { cin >> T[i]; games[i].T = T[i]; games[i].index = i; } for (int i = 0; i < n; ++i) { cin >> R[i]; games[i].R = R[i]; } sort(games.begin(), games.end(), compare); vector<int> dp(n + 1, -1); int totalReward = 0; for (const auto& game : games) { for (int t = game.T; t >= 1; --t) { if (dp[t] == -1) { dp[t] = game.index; totalReward += game.R; break; } } } cout << totalReward << endl; return 0;
}
-
最近活动