lzP1094题解
查看原帖
lzP1094题解
1191341
smart_lizan楼主2024/2/26 17:54

题解在此

#include <bits/stdc++.h>
const int N=1e6+5;
using namespace std;
typedef long long ll;
int a[N];
int main()
{
    ll x,n,ans=0;
    cin>>x>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    for(int i=1;i<=n;i++)
    {
        if(a[i]==0)
            continue;
        int m=x-a[i];
        for(int j=n;j>=i;j--)
        {
            if(a[j]<=m&&a[j]!=0)
            {
                ans++;
                a[i]=0;
                a[j]=0;
                break;
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        if(a[i]!=0)
        {
            ans++;
        }
    }
    cout<<ans;
    return 0;
}

四行代码

#include <bits/stdc++.h>
using namespace std;
const int N=1e6+5;typedef long long ll;int a[N];
int main(){ll x,n,ans=0;cin>>x>>n;for(int i=1; i<=n; i++){cin>>a[i];}sort(a+1,a+n+1);for(int i=1;i<=n;i++){if(a[i]==0){continue;}int m=x-a[i];for(int j=n;j>=i;j--){if(a[j]<=m&&a[j]!=0){ans++;/**cout<<a[i]<<','<<j<<':'<<a[j]<<endl;**/a[i]=0;a[j]=0;break;}}}for(int i=1;i<=n;i++){if(a[i]!=0){ans++;}}cout<<ans;return 0;}

2024/2/26 17:54
加载中...