fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define LL long long int
  4. #define MAX 100010
  5.  
  6. LL n,k,p,i,a,b,diff,t,in1,in2;
  7. LL arr[MAX],index[MAX];
  8. LL temp[MAX];
  9. void merge_sort(LL arr[], LL index[], LL low, LL up)
  10. {
  11. LL mid;
  12. if(low<up)
  13. {
  14. mid = (low+up)/2;
  15. merge_sort( arr, index ,low , mid );
  16. merge_sort( arr ,index ,mid+1, up );
  17. merge( arr, index, temp, low, mid, mid+1, up );
  18. copy(arr,temp,low, up);
  19.  
  20. }
  21. }
  22.  
  23.  
  24. void merge( LL arr[], LL index[] , LL temp[], LL low1, LL up1, LL low2, LL up2 )
  25. {
  26. LL i = low1;
  27. LL j = low2 ;
  28. LL k = low1 ;
  29.  
  30. while( (i <= up1) && (j <=up2) )
  31. {
  32. if(arr[i] <= arr[j])
  33. {
  34. temp[k] = arr[i] ;
  35. index[k] = i;
  36. i++;
  37. k++;
  38. }
  39. else
  40. {
  41. temp[k] = arr[j] ;
  42. index[k] = j;
  43. j++;
  44. k++;
  45. }
  46. }
  47. while( i <= up1 )
  48. {
  49. temp[k]=arr[i];
  50. index[k]=i;
  51. i++;
  52. k++;
  53. }
  54. while( j <= up2 )
  55. {
  56. temp[k]=arr[j];
  57. index[k]=j;
  58. k++;
  59. j++;
  60. }
  61. }
  62.  
  63. void copy(LL arr[], LL temp[], LL low, LL up )
  64. {
  65. LL i;
  66. for(i=low; i<=up; i++)
  67. arr[i]=temp[i];
  68. }
  69.  
  70.  
  71. int main()
  72. {
  73. scanf("%lld %lld %lld",&n,&k,&p);
  74. for(i=1;i<=n;i++)
  75. {
  76. scanf("%lld",&arr[i]);
  77. index[i] = i;
  78. }
  79. merge_sort(arr,index,1,n);
  80.  
  81. while(p--)
  82. {
  83. scanf("%lld %lld",&a,&b);
  84. if(a>b)
  85. {
  86. t=a;
  87. a=b;
  88. b=t;
  89. }
  90. for(i=1;i<=n;i++)
  91. {
  92. if(index[i]==a)
  93. in1=i;
  94. if(index[i]==b)
  95. in2=i;
  96. }
  97. int flag =1;
  98. for(i=in1;i<in2;i++)
  99. {
  100. diff = arr[i+1]-arr[i];
  101. if(diff > k)
  102. {
  103. flag=0;
  104. break;
  105. }
  106. }
  107. if(flag)
  108. printf("Yes\n");
  109. else
  110. printf("No\n");
  111. }
  112. return 0;
  113. }
  114.  
Success #stdin #stdout 0s 4600KB
stdin
5 3 3
0 3 8 5 12
1 2
1 3
2 5
stdout
Yes
Yes
No