1140C - Playlist - CodeForces Solution


brute force data structures sortings *1600

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ar array

void solve()
{
  ll n,k;
  cin>>n>>k;
  priority_queue<ll,vector<ll>,greater<ll>> pq;
  vector<pair<int,int>> arr;
  for(int i = 0;   i <  n; i++)
  {
   int a,b;
   cin>>a>>b;
   arr.push_back({b,a});
  }
  sort(arr.begin(),arr.end());
   reverse(arr.begin(), arr.end());
   ll ans = LLONG_MIN;
   ll s = 0;
   ll ma = 0;
   for(int i  = 0 ; i<k; i++)
   {
   pq.push(arr[i].second);
   s+=arr[i].second;
   ans = max(ans,s*arr[i].first);

    
   }
  
   
   for(int i =  k ; i < n; i++)
   {
      ans = max(ans , (s-pq.top()+arr[i].second)*arr[i].first);
      if(arr[i].second > pq.top())
      {
         s -= pq.top();
         s+=arr[i].second;
         pq.pop();
         pq.push(arr[i].second);

      }
      
   }
   cout<<ans<<"\n";


  

}

int main()
{
   ios_base::sync_with_stdio(0);
   cin.tie(NULL);
   ll tc;
   tc = 1;
   //cin >> tc;
   while (tc--)
      solve();
}


Comments

Submit
0 Comments
More Questions

780C - Andryusha and Colored Balloons
1153A - Serval and Bus
1487C - Minimum Ties
1136A - Nastya Is Reading a Book
1353B - Two Arrays And Swaps
1490E - Accidental Victory
1335A - Candies and Two Sisters
96B - Lucky Numbers (easy)
1151B - Dima and a Bad XOR
1435B - A New Technique
1633A - Div 7
268A - Games
1062B - Math
1294C - Product of Three Numbers
749A - Bachgold Problem
1486B - Eastern Exhibition
1363A - Odd Selection
131B - Opposites Attract
490C - Hacking Cypher
158B - Taxi
41C - Email address
1373D - Maximum Sum on Even Positions
1574C - Slay the Dragon
621A - Wet Shark and Odd and Even
1395A - Boboniu Likes to Color Balls
1637C - Andrew and Stones
1334B - Middle Class
260C - Balls and Boxes
1554A - Cherry
11B - Jumping Jack