1 条题解

  • 0
    @ 2024-7-3 7:23:18
    #include<bits/stdc++.h>
    using namespace std;
    struct gq{
    	int q;
    	int h;
    };
    bool cmp(gq a,gq b){
    	return (a.q-a.h)>(b.q-b.h);
    }
    int main(){
        gq a[1000001];
        int n,m;
        cin>>n>>m;
        int p=0;
        for(int i=0;i<n;i++){
    		cin>>a[i].q>>a[i].h;
    		p+=a[i].q;
        }
        sort(a+0,a+n,cmp);
        int ans=0;
        for(int i=0;i<n;i++){
    		if(p<m){
    			cout<<ans;
    			return 0;
    		}//不加if,直接判断的话,会得83
    		else{
    			p-=a[i].q;
    			p+=a[i].h;
    			ans++;
    			if(p<=m){
    				cout<<ans;
    				return 0;
    			}
    			else{
    				continue;
    			}
    		}
        }
        cout<<"-1";
        return 0;
    }
    

    信息

    ID
    401
    时间
    1000ms
    内存
    64MiB
    难度
    9
    标签
    递交数
    14
    已通过
    5
    上传者