Submission #1360866

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

// #pragma GCC optimize("Ofast")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,fma")
// #pragma GCC optimize("unroll-loops")

#define ll long long
// #define int long long
#define F first
#define S second
void solve()
{
  int n,m;
  cin>>n>>m;
  vector<pair<int,int>>q;
  // multiset<int>w;
  for(int i = 0;i<n;i++){
    int x,y;
    cin>>x>>y;
    q.push_back({x,-y});
    // w.insert(-y);
  }

  sort(q.begin(),q.end());

  while(m--){
    int x,y;
    cin>>x>>y;
    
    vector<pair<int,int>>a;

    for(int i = 0;i<n;i++){
        if(q[i].F>=x && -q[i].S<=y){
            a.push_back({q[i].F,q[i].S});
        }
    }

    if(a.size()==0){
        cout<<0<<endl;
        continue;
    }

    int kk = 0;
    multiset<int>r;
    r.insert(-a[0].S);
    for(int i = 1;i<a.size();i++){

        auto it = r.lower_bound(-a[i].S);
        if(it == r.begin()){
            r.insert(-a[i].S);
        }
        else{
            it--;
            r.erase(r.find(*it));
            r.insert(-a[i].S);
        }
    }
    cout<<r.size()<<endl;



  }
}

signed main()
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  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...