def interpolation_search(arr, x):
low = 0
high = len(arr) - 1
while low <= high and arr[low] <= x <= arr[high]:
if arr[high] == arr[low]:
return low if arr[low] == x else -1
pos = low + (x - arr[low]) * (high - low) // (arr[high] - arr[low])
if arr[pos] == x:
return pos
elif arr[pos] < x:
low = pos + 1
else:
high = pos - 1
return -1
# Example usage:
arr = [10, 20, 30, 40, 50, 60, 70]
x = 50
result = interpolation_search(arr, x)
if result != -1:
print(f"Found {x} at index: {result}")
else:
print("Number not found.")
# your code goes here
ZGVmIGludGVycG9sYXRpb25fc2VhcmNoKGFyciwgeCk6CiAgICBsb3cgPSAwCiAgICBoaWdoID0gbGVuKGFycikgLSAxCgogICAgd2hpbGUgbG93IDw9IGhpZ2ggYW5kIGFycltsb3ddIDw9IHggPD0gYXJyW2hpZ2hdOgogICAgICAgIGlmIGFycltoaWdoXSA9PSBhcnJbbG93XToKICAgICAgICAgICAgcmV0dXJuIGxvdyBpZiBhcnJbbG93XSA9PSB4IGVsc2UgLTEKCiAgICAgICAgcG9zID0gbG93ICsgKHggLSBhcnJbbG93XSkgKiAoaGlnaCAtIGxvdykgLy8gKGFycltoaWdoXSAtIGFycltsb3ddKQoKICAgICAgICBpZiBhcnJbcG9zXSA9PSB4OgogICAgICAgICAgICByZXR1cm4gcG9zCiAgICAgICAgZWxpZiBhcnJbcG9zXSA8IHg6CiAgICAgICAgICAgIGxvdyA9IHBvcyArIDEKICAgICAgICBlbHNlOgogICAgICAgICAgICBoaWdoID0gcG9zIC0gMQoKICAgIHJldHVybiAtMQoKIyBFeGFtcGxlIHVzYWdlOgphcnIgPSBbMTAsIDIwLCAzMCwgNDAsIDUwLCA2MCwgNzBdCnggPSA1MApyZXN1bHQgPSBpbnRlcnBvbGF0aW9uX3NlYXJjaChhcnIsIHgpCmlmIHJlc3VsdCAhPSAtMToKICAgIHByaW50KGYiRm91bmQge3h9IGF0IGluZGV4OiB7cmVzdWx0fSIpCmVsc2U6CiAgICBwcmludCgiTnVtYmVyIG5vdCBmb3VuZC4iKQojIHlvdXIgY29kZSBnb2VzIGhlcmU=