PAT甲级1048 Find Coins 关于sort函数

本来是这样的:
在这是里插入图片描述
然后将cmp函数里a<=b改成a<b,就全部pass了。

#include<iostream>
#include <string>
#include <algorithm>

using namespace std;

bool cmp(int a,int b){
    return a<b;
}
int main(){
    int n,m;
    cin>>n>>m;
    int a[1010]={0};
    int b[100010]={0};
    for(int i=0;i<n;i++){
        int p;
        cin>>p;
        b[i]=p;
        a[p]++;
    }
    sort(b,b+n,cmp);
    int t=0,q=0;
    for(int i=0;i<n;i++){
        if(b[i]>m) break;

        a[b[i]]--;
        
        if(a[m-b[i]]>0){
            t=b[i];
            q=m-b[i];
            break;
        }
    }
    if(t>q){
        int temp=q;
        q=t;
        t=temp;
    }
    if(t==0||q==0){
        cout<<"No Solution";
    }
    else{
        cout<<t<<" "<<q;
    }
}

加个等于的情况是担心两个数一样不知道怎么排序,看来无需有这个顾虑,有空的时候学习一下sort()的源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值