Thứ Hai, 9 tháng 5, 2022

NDCCARD C++

#include <bits/stdc++.h>
#define task "ndccard"
using namespace std;
typedef long long ll;
int n,a[1001],m;

void nhap()
{
    scanf("%d%d",&n,&m);
    for(int i = 1;i <= n;++i) scanf("%d",&a[i]);
}

int tknp(ll x,int l,int r)
{
    int mid,kq=-1;
    while(l<=r)
    {
        mid=(l+r)/2;
        if(a[mid]<=x)
        {
            kq=mid;
            l=mid+1;
        }
        else r=mid-1;
    }
    return kq;
}
void xuly()
{
    ll maxx=0,res;
    int k;
    sort(a+1,a+1+n);
    for(int i=1;i<=n-2;i++)
        for(int j=i+1;j<=n-1;j++)
        {
            k=tknp(m-a[i]-a[j],j+1,n);
            if(k!=-1)
                if(a[i]+a[j]+a[k]>maxx)
                    maxx=a[i]+a[j]+a[k];
        }
    cout<<maxx;
}
int main()
{
    freopen(task".inp","r",stdin);
    freopen(task".out","w",stdout);
    nhap();
    xuly();
}

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.