题解:P12342 [蓝桥杯 2025 省 B/Python B 第二场] 数列差分

· · 题解

思路

简单贪心题,就是能减则减,使原本正整数的数量尽量多,就是用尽量大的数来减较大的数,最后输出用总数减去原本正整数的个数,输出即可。

code:

#include<bits/stdc++.h>
#define MOD 1000000007
using namespace std;
int a[100005],b[100005];
int main(){
    cin.tie(0)->sync_with_stdio(0);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
        cin>>b[i];
    }
    sort(a+1,a+n+1);
    sort(b+1,b+n+1);
    int l1=n,l2=n,ans=n;
    while(l2>0){
        if(a[l1]>b[l2]){
            l1--;
            l2--;
            ans--;
        }
        else{
            l2--;
        }
    }
    cout<<ans;
    return 0;
}