greedy implementation sortings *1400

Please click on ads to support us..

C++ Code:

#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>

using namespace std;

int main()
{
    int n, k;
    cin >> n >> k;

    vector<long long> ans(n);
    vector<pair<pair<int, int>, int>> p(n);

    for (int i = 0; i < n; i++)
        cin >> p[i].first.first;

    for (int i = 0; i < n; i++)
    {
        cin >> p[i].first.second;
        p[i].second = i;
    }

    sort(p.begin(), p.end());

    long long mx = 0;
    priority_queue<int> q;

    for (int i = 0; i < n; i++)
    {
        mx += p[i].first.second;
        q.push(-p[i].first.second);
        ans[p[i].second] = mx;

        if (q.size() > k)
        {
            mx += q.top();
            q.pop();
        }
    }

    for (int i = 0; i < n; i++)
        cout << ans[i] << " ";

    return 0;
}

			 		 	  		  					    		  	  	


Comments

Submit
0 Comments
More Questions

1278B - A and B
1353D - Constructing the Array
1269C - Long Beautiful Integer
1076A - Minimizing the String
913C - Party Lemonade
1313A - Fast Food Restaurant
681A - A Good Contest
1585F - Non-equal Neighbours
747A - Display Size
285A - Slightly Decreasing Permutations
515C - Drazil and Factorial
1151E - Number of Components
1151F - Sonya and Informatics
556A - Case of the Zeros and Ones
867A - Between the Offices
1569A - Balanced Substring
260A - Adding Digits
1698C - 3SUM Closure
1029B - Creating the Contest
1421A - XORwice
1029A - Many Equal Substrings
1675D - Vertical Paths
1271C - Shawarma Tent
805A - Fake NP
1163A - Eating Soup
787A - The Monster
807A - Is it rated
1096A - Find Divisible
1430C - Numbers on Whiteboard
1697B - Promo