# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
346797 | 2021-01-11T05:28:53 Z | arnold518 | Trampoline (info1cup20_trampoline) | C++14 | 553 ms | 34320 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const int MAXN = 2e5; int R, C, N, Q; pii A[MAXN+10]; unordered_map<int, vector<pii>> M; int par[MAXN+10][30]; int main() { scanf("%d%d%d", &R, &C, &N); for(int i=1; i<=N; i++) { scanf("%d%d", &A[i].first, &A[i].second); M[A[i].first].push_back({A[i].second, i}); } for(auto &it : M) { sort(it.second.begin(), it.second.end()); } for(int i=1; i<=N; i++) { if(M.find(A[i].first+1)==M.end()) continue; auto it=lower_bound(M[A[i].first+1].begin(), M[A[i].first+1].end(), pii(A[i].second, 0)); if(it==M[A[i].first+1].end()) par[i][0]=0; else par[i][0]=it->second; if(par[i][0]!=0) assert(A[par[i][0]].first==A[i].first+1); } A[0]={987654321, 987654321}; for(int i=1; i<=20; i++) for(int j=1; j<=N; j++) par[j][i]=par[par[j][i-1]][i-1]; scanf("%d", &Q); while(Q--) { int y1, x1, y2, x2; scanf("%d%d%d%d", &y1, &x1, &y2, &x2); if(x1>x2 || y1>y2) { printf("No\n"); continue; } if(y1==y2 && x1<=x2) { printf("Yes\n"); continue; } if(M.find(y1)==M.end()) { printf("No\n"); continue; } auto it=lower_bound(M[y1].begin(), M[y1].end(), pii(x1, 0)); if(it==M[y1].end()) { printf("No\n"); continue; } int now=it->second; /* while(1) { if(A[par[now][0]].first>=y2) break; now=par[now][0]; } */ for(int i=20; i>=0; i--) { if(A[par[now][i]].first<y2) now=par[now][i]; } if(A[now].first!=y2-1) { printf("No\n"); continue; } if(A[now].second<=x2) { printf("Yes\n"); } else { printf("No\n"); } } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 1516 KB | 200 token(s): yes count is 21, no count is 179 |
2 | Correct | 6 ms | 1772 KB | 200 token(s): yes count is 70, no count is 130 |
3 | Correct | 4 ms | 1388 KB | 197 token(s): yes count is 25, no count is 172 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 199 ms | 28396 KB | 4000 token(s): yes count is 99, no count is 3901 |
2 | Correct | 172 ms | 28652 KB | 4000 token(s): yes count is 91, no count is 3909 |
3 | Correct | 169 ms | 27756 KB | 4000 token(s): yes count is 4000, no count is 0 |
4 | Correct | 183 ms | 28396 KB | 4000 token(s): yes count is 1991, no count is 2009 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 373 ms | 28256 KB | expected YES, found NO [4th token] |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 7 ms | 1004 KB | expected YES, found NO [1st token] |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 553 ms | 34320 KB | expected YES, found NO [1st token] |
2 | Halted | 0 ms | 0 KB | - |