fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4.  
  5. int main()
  6. {
  7.  
  8. vector<int> deadline = {2, 1, 2, 1, 1};
  9. vector<int> profit = {100, 19, 27, 25, 15};
  10.  
  11. int n = deadline.size();
  12. vector<int> ans = {0, 0};
  13. vector<pair<int, int>> jobs;
  14.  
  15. for (int i = 0; i < n; i++)
  16. {
  17. jobs.push_back({deadline[i], profit[i]});
  18. }
  19.  
  20.  
  21. sort(jobs.begin(), jobs.end());
  22. priority_queue<int, vector<int>, greater<int>> pq;
  23.  
  24. for (int i = 0; i < jobs.size(); i++)
  25. {
  26. if (jobs[i].first > pq.size())
  27. pq.push(jobs[i].second);
  28.  
  29. else if (!pq.empty() && pq.top() < jobs[i].second)
  30. {
  31. pq.pop();
  32. pq.push(jobs[i].second);
  33. }
  34. }
  35.  
  36. int cnt = 0, totalProfit = 0;
  37. while (!pq.empty())
  38. {
  39. totalProfit += pq.top();
  40. pq.pop();
  41. cnt++;
  42. }
  43.  
  44. cout << cnt << " " << totalProfit << endl;
  45.  
  46.  
  47. return 0;
  48. }
  49.  
Success #stdin #stdout 0.01s 5324KB
stdin
Standard input is empty
stdout
2 127