30分求助!
查看原帖
30分求助!
760776
zzy_zzy楼主2022/10/14 21:58
#include<bits/stdc++.h>//万能头
using namespace std;
priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > >q;//小根堆方便排序 
int main(){
    long long n,sum=0,cnt=0;//sum统计用的时间,cnt表示报废楼房的个数 
    cin>>n;
    for(int i=1;i<=n;i++){
        int x,y;
        cin>>x>>y;
        q.push(make_pair(y,x));//因为是按照T2排序,所以是先放y,再放x 
    }
    while(q.size()){
        int v=q.top().first;
        int u=q.top().second;//获取对头元素 
        swap(v,u);//因为是先放y,再放x,所以要交换 
        q.pop();//弹出 
        if(sum+v>u){
            cnt++;
            continue;
        }//如果用时超过了报废时间,那么就让它报废 
        sum+=v;//其他的无论怎样都要修 
    }
    cout<<n-cnt;//输出 
    return 0;
}

样例过了,但是是30分,还请大佬帮蒟蒻查一查哪错了!

2022/10/14 21:58
加载中...