其他分享
首页 > 其他分享> > JSOI2007 建筑抢修

JSOI2007 建筑抢修

作者:互联网

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
#define maxn 250000
#define int long long
#define rep(x,y,z) for(int x = y ; x <= z ;x ++) 
using namespace std ;
int n ;
struct dy{
    int  w , t ;
    int operator < (const dy &x) const {
        return t < x.t ;
    }
}a[maxn] ;
int tot , ans ;
priority_queue<int>q ;
signed main() {
    scanf("%lld",&n) ;
    rep(i,1,n) {
        scanf("%lld%lld",&a[i].w,&a[i].t) ;
    }sort(a+1,a+1+n) ;
    rep(i,1,n){
        if(tot + a[i].w > a[i].t) {
            if(a[i].w < q.top()) {
                tot -= q.top() , q.pop() ;
                q.push(a[i].w) ;
                tot += a[i].w ;
            }
        }else {
            ans ++ ;
            q.push(a[i].w) ;
            tot += a[i].w ;
        }
    }
    cout << ans << endl ;
    return 0 ;
}

标签:JSOI2007,rep,int,抢修,top,tot,include,建筑,define
来源: https://www.cnblogs.com/lyt020321/p/11637831.html