Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2022
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define int long long
  6.  
  7. const int N = 200200;
  8. const int LOG = 18;
  9. int n, m;
  10. int sparse[LOG][N];
  11. int log_2[N];
  12.  
  13.  
  14.  
  15. int sparsemax(int l, int r){
  16. int p = log_2[r - l];
  17. return max(sparse[p][l], sparse[p][r - (1 << p)]);
  18. }
  19.  
  20.  
  21. signed main(){
  22. int n, m;
  23. cin >> n >> m;
  24. for (int i = 0; i < m; i++){
  25. int x; cin >> x;
  26. sparse[0][i] = x;
  27. }
  28. for (int i = 2; i < N; i++){
  29. log_2[i] = log_2[i / 2] + 1;
  30. }
  31. for (int i = 1; i <= LOG; i++){
  32. for (int kk = 0; kk + (1 << i) <= m; kk++){
  33. int left = sparse[i - 1][kk];
  34. int right = sparse[i - 1][kk + (1 << (i - 1))];
  35. sparse[i][kk] = max(left, right);
  36. //cout << sparse[i][kk] << ' ';
  37. }
  38. //cout << endl;
  39. }
  40. int tt; cin >> tt;
  41. while(tt--){
  42. int x1, y1, x2, y2, k;
  43. cin >> x1 >> y1 >> x2 >> y2 >> k;
  44. if (x1 > x2) swap(x1, x2);
  45. if (y1 > y2) swap(y1, y2);
  46. if (((y2 - y1) % k == 0) && ((x2 - x1) % k == 0)){
  47.  
  48. int mx = sparsemax(y1 - 1, y2);
  49. //cout << mx << endl;
  50. int di = (n - x1)/k;
  51. int top = x1 + di * k;
  52. if (top <= mx){
  53. cout << "NO" << endl;
  54. }else cout << "YES" << endl;
  55. }else cout << "NO" << endl;
  56.  
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement