fork download
  1. def frog(arr,k):
  2.  
  3. for i in range(len(arr)):
  4.  
  5. if abs(arr[i]-arr[i-1])<=k:
  6. table[i]=table[i-1]
  7. else:
  8. table[i]=table[i-1]+1
  9.  
  10. """every reachable point will have same number, dictionary maps element unsorted
  11. list to sorted list with element as key and value as index of element in sorted list """
  12.  
  13. n,k,p=map(int,input().split())
  14. lst=[int(x) for x in input().split()]
  15. track={}
  16. lstsorted=sorted(lst)
  17. for i,z in enumerate(lstsorted):
  18. track[z]=i
  19.  
  20. table=[0]*(n+1)
  21. table[-1]=1
  22. for i in range(p):
  23. a,b=map(int,input().split())
  24. i=lst[a]
  25.  
  26. frog(lstsorted,k)
  27. # print(table)
  28.  
  29. x,y=track[lst[a-1]],track[lst[b-1]]
  30. print("Yes" if table[x]==table[y] else "No")
  31.  
Success #stdin #stdout 0.04s 9636KB
stdin
3 5 2
0 5 12
1 2
1 3
stdout
Yes
No