Submission #1358553

#TimeUsernameProblemLanguageResultExecution timeMemory
1358553salehhasanliMatryoshka (JOI16_matryoshka)C++20
26 / 100
1 ms344 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;
  for(int i = 0;i<n;i++){
    int x,y;
    cin>>x>>y;
    q.push_back({x,y});
  }

  while(m--){
    int x,y;
    cin>>x>>y;
    vector<pair<int,int>>f;
    for(int i = 0;i<n;i++){
      if(x<=q[i].F && y>=q[i].S){
        f.push_back(q[i]);
      }
    }
    sort(f.rbegin(),f.rend());

    multiset<pair<int,int>>qq;

    for(int i = 0;i<f.size();i++){
      pair<int,int>t;
      int gg = 0;
      bool y = false;
      for(auto [l,r]:qq){
        if(l>f[i].F && r>f[i].S){

          if(!y){
            gg = l-f[i].F+r-f[i].S;
            t = {l,r};
          }
          else{
            int uu = l-f[i].F+r-f[i].S;
            if(uu<gg){
              t = {l,r};
            }
            else if(uu==gg){
              if(l<t.F || r<t.S){
                gg = uu;
                t = {l,r};
              }
            }
          }
          y = true;
        }
      }
      if(y){
        qq.erase(qq.find(t));
      }
      qq.insert({f[i].F,f[i].S});
    }
    cout<<qq.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...