1379C - Choosing flowers - CodeForces Solution


binary search brute force data structures dfs and similar dp greedy sortings two pointers *2000

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
int main()
{ll t;
cin>>t;
while(t--){
    ll m,n;
    cin>>m>>n;
    pair<ll,ll>p[n];
    ll arr[n],ps[n+1]={0};
    for(ll i=0;i<n;i++){
        ll x,y;
        cin>>x>>y;
        p[i]=make_pair(x,y);
        arr[i]=x;
    }
    sort(arr,arr+n);
    for(ll i=1;i<=n;i++){
        ps[i]=ps[i-1];
        ps[i]+=arr[i-1];
    }
    ll ans=0;
    for(ll i=0;i<n;i++){
        ll y=p[i].second;
        ll x=p[i].first;
        ll r=upper_bound(arr,arr+n,y)-arr;
        ll cnt=n-r;
        if(x<=y){
            cnt++;
        }
        if(cnt<=m){
            ll tot=ps[n]-ps[r];
            if(x<=y){
                tot+=x;
            }
            ll q=m-cnt;
            tot+=q*y;
            ans=max(ans,tot);
        }
        else{
            
            ans=max(ans,ps[n]-ps[n-m]);
        }
    }
    cout<<ans<<"\n";
    
}
    
   
}


Comments

Submit
0 Comments
More Questions

579A - Raising Bacteria
723A - The New Year Meeting Friends
302A - Eugeny and Array
1638B - Odd Swap Sort
1370C - Number Game
1206B - Make Product Equal One
131A - cAPS lOCK
1635A - Min Or Sum
474A - Keyboard
1343A - Candies
1343C - Alternating Subsequence
1325A - EhAb AnD gCd
746A - Compote
318A - Even Odds
550B - Preparing Olympiad
939B - Hamster Farm
732A - Buy a Shovel
1220C - Substring Game in the Lesson
452A - Eevee
1647B - Madoka and the Elegant Gift
1408A - Circle Coloring
766B - Mahmoud and a Triangle
1618C - Paint the Array
469A - I Wanna Be the Guy
1294A - Collecting Coins
1227A - Math Problem
349A - Cinema Line
47A - Triangular numbers
1516B - AGAGA XOOORRR
1515A - Phoenix and Gold