WA#1、#3、#4、#5、#6
#include<bits/stdc++.h>
#define ll long long
#define INF 1e9+7
#define lt u*2,l,mid
#define rt u*2+1,mid+1,r
#define ls u*2
#define rs u*2+1
#define mid (l+r)/2
using namespace std;
const int N=5e4+15;
int n,m,y[N],a[N],t[4*N],L[4*N],R[4*N];
bool v[4*N];
void push_up(int u)
{
if(R[ls]==L[rs]-1)
{
v[u]=v[ls]&v[rs];
}
L[u]=L[ls];
R[u]=R[rs];
t[u]=max(t[ls],t[rs]);
}
void build(int u,int l,int r)
{
if(l==r)
{
L[u]=R[u]=y[l];
t[u]=a[l];
v[u]=1;
return ;
}
build(lt);
build(rt);
push_up(u);
}
int query(int u,int l,int r,int a,int b)
{
if(a<=l&&b>=r)
{
return t[u];
}
int maxn=0;
if(a<=mid)
{
maxn=max(maxn,query(lt,a,b));
}
if(b>mid)
{
maxn=max(maxn,query(rt,a,b));
}
return maxn;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>y[i]>>a[i];
}
build(1,1,n);
cin>>m;
for(int i=1;i<=m;i++)
{
int l,r;
cin>>l>>r;
if(l>=r)
{
cout<<"false"<<endl;
continue;
}
int b=lower_bound(y+1,y+n+1,l)-y;
int e=lower_bound(y+1,y+n+1,r)-y;
bool vl,vr;
vl=y[b]==l;
vr=y[e]==r;
int k=0;
if(b==e-1)
{
if(vl&&vr)
{
if(a[b]<a[e])
{
cout<<"false"<<endl;
}
else
{
cout<<"true"<<endl;
}
}
else
{
cout<<"maybe"<<endl;
}
continue;
}
k=query(1,1,n,b+1,e-1);
if((vl&&k>=a[b])||(vl&&vr&&a[b]<a[e])||(vr&&k>=a[e]))
{
cout<<"false"<<endl;
}
else if(!vl||!vr||e-b!=y[e]-y[b])
{
cout<<"maybe"<<endl;
}
else
{
cout<<"true"<<endl;
}
}
return 0;
}