求助 有点理不清指针的逻辑关系
查看原帖
求助 有点理不清指针的逻辑关系
757864
ruye楼主2023/10/28 15:23
const int N = 2e5 + 10;
int n;
pii a[N];

signed main(){
    IOS;
    cin >> n;
    for(int i = 1; i <= n; i ++ ){
        cin >> a[i].first >> a[i].second;
        a[i].second += a[i].first;
    }
    sort(a + 1, a + n + 1);
    priority_queue<int, vector<int>, greater<int> >q;

    int time = 0, i = 1, ans = 0; 
    while(1){
        if(q.empty()){ 
            if(i == n + 1) break;
            else time = max(time, a[i].first);
        }
        while(a[i].first <= time && i <= n) q.push(a[i ++ ].second);
        while(q.size() && q.top() < time) q.pop();
        
        if(q.size()){
            q.pop();
            ans ++ ; 
            time ++;
        }
    }
    cout << ans << endl;
2023/10/28 15:23
加载中...