# your code goes here
import timeit
setup1 = """
import numpy as np
def my_unit_circle(r):
d = 2*r + 1
rx, ry = d/2, d/2
x, y = np.indices((d, d))
return (np.abs(np.hypot(rx - x, ry - y) - r) < 0.5).astype(int)
"""
setup2 = """
import numpy as np
def unit_circle_vectorized(r):
A = np.arange(-r,r+1)**2
dists = np.sqrt(A[:,None] + A)
return (np.abs(dists-r)<0.5).astype(int)
"""
print(timeit.timeit("my_unit_circle(100)", setup=setup1, number=100))
print(timeit.timeit("unit_circle_vectorized(100)", setup=setup2, number=100))
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCgppbXBvcnQgdGltZWl0CgpzZXR1cDEgPSAiIiIKaW1wb3J0IG51bXB5IGFzIG5wCgpkZWYgbXlfdW5pdF9jaXJjbGUocik6CiAgICBkID0gMipyICsgMQogICAgcngsIHJ5ID0gZC8yLCBkLzIKICAgIHgsIHkgPSBucC5pbmRpY2VzKChkLCBkKSkKICAgIHJldHVybiAobnAuYWJzKG5wLmh5cG90KHJ4IC0geCwgcnkgLSB5KSAtIHIpIDwgMC41KS5hc3R5cGUoaW50KQoiIiIKCnNldHVwMiA9ICIiIgppbXBvcnQgbnVtcHkgYXMgbnAKCmRlZiB1bml0X2NpcmNsZV92ZWN0b3JpemVkKHIpOgogICAgQSA9IG5wLmFyYW5nZSgtcixyKzEpKioyCiAgICBkaXN0cyA9IG5wLnNxcnQoQVs6LE5vbmVdICsgQSkKICAgIHJldHVybiAobnAuYWJzKGRpc3RzLXIpPDAuNSkuYXN0eXBlKGludCkKIiIiCiAgICAKcHJpbnQodGltZWl0LnRpbWVpdCgibXlfdW5pdF9jaXJjbGUoMTAwKSIsIHNldHVwPXNldHVwMSwgbnVtYmVyPTEwMCkpCnByaW50KHRpbWVpdC50aW1laXQoInVuaXRfY2lyY2xlX3ZlY3Rvcml6ZWQoMTAwKSIsIHNldHVwPXNldHVwMiwgbnVtYmVyPTEwMCkpCgoKCg==