AC#9,其他WA
#include<bits/stdc++.h>
using namespace std;
const int N=50100,L=21;
int n,q,x,y,a[N],b[N],lg[N],f[N][L];map<int,int>mp;
int query(int x,int y){
int k=lg[y-x+1];
return max(f[x][k],f[y-(1<<k)+1][k]);
}int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i]>>b[i],mp[a[i]]=i,f[i][0]=b[i];
for(int i=2;i<=n;i++)lg[i]=lg[i>>1]+1;
for(int j=1;j<L;j++)for(int i=1;i<=n-(1<<j)+1;i++)f[i][j]=max(f[i][j-1],f[i+(1<<j-1)][j-1]);
cin>>q;
for(;q--;){
cin>>x>>y;int l=mp[x],r=mp[y];
if(!r){
if(!l)puts("maybe");//左右都不确定
else if(b[l]<=query(l+1,r-1))puts("false");//左<=中间最值
else puts("maybe");
}else if(l){//均已知
if(b[l]<b[r])puts("false");//左<右
else if(b[r]<=query(l+1,r-1))puts("false");//右<=中间最值
else if(y-x==r-l)puts("true");
else puts("maybe");
}else{//左未知,右已知
if(b[r]<=query(l+1,r-1))puts("false");
else puts("maybe");
}
}return 0;
}