• 个人简介

    #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;
    

    }

  • 最近活动