Submission #1360849

#TimeUsernameProblemLanguageResultExecution timeMemory
1360849po_rag526Matryoshka (JOI16_matryoshka)C++20
51 / 100
2094 ms10508 KiB
#include <bits/stdc++.h>
using namespace std; 

#define int long long
#define pb push_back
#define all(v) v.begin(), v.end()

void solve() {
    int n, q; cin >> n >> q;
    vector<pair<int, int>> vt;
    for(int i = 1; i <= n; i++) {
        int r, h; cin >> r >> h;
        vt.pb({r, -h});
    }
    sort(all(vt));
    while(q--) {
        int a, b; cin >> a >> b;
        vector<pair<int, int>> vt2;
        for(int i = 0; i < n; i++) {
            if(vt[i].first >= a and -vt[i].second <= b) vt2.pb(vt[i]);
        }
        if(!vt2.size()) {
            cout << "0\n";
            continue;
        }
        multiset<int> st;
        st.insert(-vt2[0].second);
        for(int i = 1; i < vt2.size(); i++) {
            auto it = st.lower_bound(-vt2[i].second);
            if(it == st.begin()) {
                st.insert(-vt2[i].second);
            }
            else { 
                it--;
                st.erase(it);
                st.insert(-vt2[i].second);
            }
        }
        cout << st.size() << '\n';
    }
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    
    int T = 1; 
    //cin >> T;
    while (T--) solve();
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...