#include <bits/stdc++.h>
using namespace std;
const int MAXN = 420690;
const int INF = 1210201069;
#pragma GCC optimize("O3")
vector<pair<int,int>> seg[MAXN<<1];
int f(int i, int x) {return (*lower_bound(seg[i].begin(),seg[i].end(),make_pair(x,0))).second;}
void build() {
for(int i=MAXN;i--;) {
int ptr = 0;
for(auto [j, k]: seg[i<<1]) {
while(seg[i<<1|1][ptr].first<k) ptr++;
seg[i].push_back({j,seg[i<<1|1][ptr].second});
}
}
}
int qry(int l, int r, int x) {
stack<int> st;
for(l+=MAXN,r+=MAXN;l<r;l>>=1,r>>=1) {
if(l&1) x=f(l++,x);
if(r&1) st.push(--r);
}
while(st.size()) {
x=f(st.top(),x);
st.pop();
}
return x;
}
int read() {
int x = 0;
char c;
c=getchar_unlocked();
while(c>='0'&&c<='9') {
x=(x<<3)+(x<<1)+(c&15);
c=getchar_unlocked();
}
return x;
}
main() {
int r, c, n; r = read(); c = read(); n = read();
vector<int> v; int x[n], y[n];
for(int i=0;i<n;i++) {
x[i]=read();y[i]=read();
v.push_back(x[i]);
v.push_back(x[i]+1);
}
sort(v.begin(),v.end());
v.resize(unique(v.begin(),v.end())-v.begin());
for(int i=0;i<n;i++)
x[i]=lower_bound(v.begin(),v.end(),x[i])-v.begin();
for(int i=0;i<n;i++)
seg[x[i]+MAXN].push_back({y[i],y[i]});
for(int i=0;i<n;i++)
sort(seg[x[i]+MAXN].begin(),seg[x[i]+MAXN].end());
for(int i=0;i<MAXN;i++)
seg[i+MAXN].push_back({INF,INF});
build();
int t = read();
while(t--) {
int x1, y1, x2, y2;
x1=read();y1=read();x2=read();y2=read();
if(x1==x2) {
cout << (y1<=y2?"Yes\n":"No\n");
continue;
}
if(x1>x2) {
cout << "No\n";
continue;
}
auto it1 = lower_bound(v.begin(),v.end(),x1);
auto it2 = lower_bound(v.begin(),v.end(),x2);
if(it1==v.end()||it2==v.end()||(*it1)!=x1||(*it2)!=x2) {
cout << "No\n";
continue;
}
cout << (qry(it1-v.begin(),it2-v.begin(),y1)<=y2?"Yes\n":"No\n");
}
}
Compilation message
trampoline.cpp:39:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
39 | main() {
| ^~~~
trampoline.cpp: In function 'int main()':
trampoline.cpp:40:6: warning: variable 'r' set but not used [-Wunused-but-set-variable]
40 | int r, c, n; r = read(); c = read(); n = read();
| ^
trampoline.cpp:40:9: warning: variable 'c' set but not used [-Wunused-but-set-variable]
40 | int r, c, n; r = read(); c = read(); n = read();
| ^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
42 ms |
46928 KB |
200 token(s): yes count is 21, no count is 179 |
2 |
Correct |
41 ms |
46932 KB |
200 token(s): yes count is 70, no count is 130 |
3 |
Correct |
46 ms |
46764 KB |
197 token(s): yes count is 25, no count is 172 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
195 ms |
56256 KB |
4000 token(s): yes count is 99, no count is 3901 |
2 |
Correct |
203 ms |
56148 KB |
4000 token(s): yes count is 91, no count is 3909 |
3 |
Correct |
787 ms |
54976 KB |
4000 token(s): yes count is 4000, no count is 0 |
4 |
Correct |
205 ms |
56484 KB |
4000 token(s): yes count is 1991, no count is 2009 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
2043 ms |
30008 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
50 ms |
46928 KB |
5000 token(s): yes count is 3238, no count is 1762 |
2 |
Correct |
46 ms |
46824 KB |
5000 token(s): yes count is 3837, no count is 1163 |
3 |
Correct |
53 ms |
46672 KB |
5000 token(s): yes count is 4104, no count is 896 |
4 |
Correct |
111 ms |
46960 KB |
5000 token(s): yes count is 3934, no count is 1066 |
5 |
Correct |
39 ms |
46940 KB |
5000 token(s): yes count is 3384, no count is 1616 |
6 |
Correct |
174 ms |
46932 KB |
5000 token(s): yes count is 3390, no count is 1610 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
266 ms |
64960 KB |
200000 token(s): yes count is 171404, no count is 28596 |
2 |
Correct |
230 ms |
65984 KB |
200000 token(s): yes count is 161254, no count is 38746 |
3 |
Execution timed out |
2009 ms |
29476 KB |
Time limit exceeded |
4 |
Halted |
0 ms |
0 KB |
- |