题解:AT_abc431_c [ABC431C] Robot Factory

· · 题解

思路

对躯体和头部重量由大到小排序,对于每个躯体,找到一个可以匹配的头部就立即匹配上,这样可以保证方案数最大,最后将总方案数和目标值比较大小即可。

代码

#include<bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
const int N=1e6+6,inf=2e18;
typedef pair<int,int>PII;
int m,n,k,h[N],b[N],ans;
bool cmp(int a,int c){
    return a>c;
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++)
        cin>>h[i];
    for(int j=1;j<=m;j++)
        cin>>b[j];
    sort(h+1,h+n+1,cmp);
    sort(b+1,b+m+1,cmp);
    int i=1,j=1;
    while(i<=n&&j<=m){
        if(b[j]>=h[i]){
            ans++;
            i++;
            j++;
        } 
        else 
            i++;

    }
    if(ans>=k)
        cout<<"Yes";
    else 
        cout<<"No";
    return 0;
}