// Author: Teoman Ata Korkmaz
#include <bits/stdc++.h>
using namespace std;
///////////////////////////////////////////////////////////
int n,q;
vector<tuple<int,int>> v;
inline int solve(int l,int r){
//cerr<<"l,r: "<<l<<" "<<r<<endl;
vector<tuple<int,int>> v(::v.begin()+l,::v.begin()+r+1);
sort(v.begin(),v.end(),[](const auto& a,const auto& b){
const auto [al,ar]=a;
const auto [bl,br]=b;
return ar!=br?ar<br:al>bl;
});
int ans=0;
map<int,int> mp;
for(const auto [l,r]:v){
//cerr<<l<<" "<<r<<endl;
auto it=mp.lower_bound(l);
if(it!=mp.begin()){
//cerr<<"what"<<endl;
it--;
if(!(--((*it).second)))mp.erase(it);
}
else ans++;
mp[r]++;
}
return ans;
}
signed main(void){
cin>>n;
v.resize(n);
for(auto& [l,r]:v){cin>>l>>r;}
cin>>q;
while(q--){
static int x,y;
cin>>x>>y;
x--,y--;
cout<<solve(x,y)<<endl;
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |