Conturbatio
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 95 Accepted Submission(s): 46
Problem Description
There are many rook on a chessboard, a rook can attack the row and column it belongs, including its own place.
There are also many queries, each query gives a rectangle on the chess board, and asks whether every grid in the rectangle will be attacked by any rook?
There are also many queries, each query gives a rectangle on the chess board, and asks whether every grid in the rectangle will be attacked by any rook?
Input
The first line of the input is a integer
T
, meaning that there are
T
test cases.
Every test cases begin with four integers n,m,K,Q .
K is the number of Rook, Q is the number of queries.
Then K lines follow, each contain two integers x,y describing the coordinate of Rook.
Then Q lines follow, each contain four integers x1,y1,x2,y2 describing the left-down and right-up coordinates of query.
1≤n,m,K,Q≤100,000 .
1≤x≤n,1≤y≤m .
1≤x1≤x2≤n,1≤y1≤y2≤m .
Every test cases begin with four integers n,m,K,Q .
K is the number of Rook, Q is the number of queries.
Then K lines follow, each contain two integers x,y describing the coordinate of Rook.
Then Q lines follow, each contain four integers x1,y1,x2,y2 describing the left-down and right-up coordinates of query.
1≤n,m,K,Q≤100,000 .
1≤x≤n,1≤y≤m .
1≤x1≤x2≤n,1≤y1≤y2≤m .
Output
For every query output "Yes" or "No" as mentioned above.
Sample Input
2 2 2 1 2 1 1 1 1 1 2 2 1 2 2 2 2 2 1 1 1 1 2 2 1 2 2
Sample Output
#include<cstdio> #include<iostream> #include<cstring> using namespace std; int L[100005],H[100005]; int main() { int T=0; scanf("%d",&T); while(T--) { int n=0,m=0,k=0,q=0; scanf("%d%d%d%d",&n,&m,&k,&q); memset(L,0,sizeof(L)); memset(H,0,sizeof(H)); for(int i=0;i<k;i++) { int a=0,b=0; scanf("%d%d",&a,&b); H[a]=1; L[b]=1; } for(int i=2;i<=n;i++) H[i]+=H[i-1]; for(int i=2;i<=m;i++) L[i]+=L[i-1]; while(q--) { int x1=0,y1=0,x2=0,y2=0; scanf("%d%d%d%d",&x1,&y1,&x2,&y2); if(H[x2]-H[x1-1]==x2-x1+1||L[y2]-L[y1-1]==y2-y1+1) printf("Yes\n"); else printf("No\n"); } } return 0; }Yes No Yes