fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int **a;
  6. int **f;
  7. int mx[100001];
  8.  
  9. int main(){
  10. int m, n;
  11. cin>> m >> n;
  12. a = new int*[m+5];
  13. for (int i = 1; i <= m; i++){
  14. a[i] = new int[n+5];
  15. }
  16. f = new int*[m+5];
  17. for (int i = 1; i <= m; i++){
  18. f[i] = new int[n+5];
  19. }
  20. for (int i = 1; i <= m; i++){
  21. for (int j = 1; j <= n; j++){
  22. f[i][j] = 1;
  23. }
  24. }
  25. for (int i = 1; i <= m; i++){
  26. for (int j = 1; j <= n; j++){
  27. cin >> a[i][j];
  28. }
  29. }
  30. for (int i = m-1; i>=1; i--){
  31. for (int j = 1; j <= n; j++){
  32. if (a[i][j]<=a[i+1][j]){
  33. f[i][j] = f[i+1][j] + 1;
  34. }else{
  35. f[i][j] = 1;
  36. }
  37. }
  38. }
  39. int t;
  40. for (int i = 1; i <= m; i++){
  41. t = -1;
  42. for (int j = 1; j<= n; j++){
  43. if (f[i][j]>t){
  44. t = f[i][j];
  45. }
  46. }
  47. mx[i] = t;
  48. }
  49. int k;
  50. cin >> k;
  51. int l, r;
  52. for (int i = 1; i <= k; i++){
  53. cin >> l >> r;
  54. if (mx[l]>=r-l+1){
  55. cout << "Yes" << endl;
  56. }else{
  57. cout << "No" << endl;
  58. }
  59. }
  60. return 0;
  61. }
Success #stdin #stdout 0s 15632KB
stdin
5 4
1 2 3 5
3 1 3 2
4 5 2 3
5 5 3 2
4 4 3 4
6
1 1
2 5
4 5
3 5
1 3
1 5
stdout
Yes
No
Yes
Yes
Yes
No