This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int n,m,k,q,link[200010];
pair<int,int>tr[200010];
int xb,yb,xe,ye;
int cb(int b,int e)
{
if(b>e)
return b;
int m=(b+e)/2;
if(tr[m].first<xb||tr[m].first==xb&&tr[m].second<yb)
return cb(m+1,e);
return cb(b,m-1);
}
ifstream in("test.in");
ofstream out("test.out");
int main()
{
ios_base::sync_with_stdio(NULL);
cin.tie(0);
cout.tie(0);
cin>>n>>m>>k;
for(int i=1;i<=k;++i)
cin>>tr[i].first>>tr[i].second;
sort(tr+1,tr+k+1);
tr[k+1]={1111111111,1111111111};
for(int i=1;i<=k;++i)
{
xb=tr[i].first+1;
yb=tr[i].second;
link[i]=cb(i+1,k);
if(tr[link[i]].first>tr[i].first+1)
link[i]=k+1;
}
cin>>q;
while(q--)
{
cin>>xb>>yb>>xe>>ye;
int poz=cb(1,k);
int l=xb,c=yb;
if(l<tr[poz].first)
poz=k+1;
while(l<xe)
{
l=tr[poz].first+1;
c=tr[poz].second;
poz=link[poz];
}
if(c<=ye)
cout<<"Yes"<<'\n';
else
cout<<"No"<<'\n';
}
return 0;
}
Compilation message (stderr)
trampoline.cpp: In function 'int cb(int, int)':
trampoline.cpp:13:39: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
13 | if(tr[m].first<xb||tr[m].first==xb&&tr[m].second<yb)
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
# | 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... |