def solution(data):
# Your code here
pegs = {}
test_range = 10001
for k, v in enumerate(data):
#key = f"peg_{k+1}"
key = 'peg_' + str(k+1)
pegs[key] = v
peg_last = pegs[list(pegs)[-1]]
peg_1 = pegs['peg_1']
result = []
break_out_flag = False
if len(pegs) == 2:
for b in range(1,test_range):
for a in range(1,test_range):
if 3/2*(a/b) == peg_last-peg_1 and a >=b :
final_a = a
final_b = b
result = [final_a,final_b]
break_out_flag = True
break
if break_out_flag:
break
if len(pegs) > 2:
for b in range(1,test_range):
for a in range(1,test_range):
summation = 0
rads = {}
#r_1 = a/b
for k, v in enumerate( range(len(data)) ):
#key = f"rad_{k+1}"
key = "rad_" + str(k+1)
previous_key = "rad_"+ str(k)
if k == 0:
v = a/b
rads[key] = v
else:
#current_peg = pegs[f"peg_{k+1}"]
#previous_peg = pegs[f"peg_{k}"]
current_peg = pegs["peg_" + str(k+1)]
previous_peg = pegs["peg_" + str(k)]
rads[key] = current_peg - previous_peg - rads[previous_key]
for k in range(len(data) ):
if k != 0 and k != len(data) - 1:
summation += 2*rads["rad_" + str(k+1)]
#summation += 2*rads[f"rad_{k+1}"]
r_1 = rads['rad_1']
if r_1 + summation + r_1/2 == peg_last-peg_1 and a >= b :
final_a = a
final_b = b
result = [final_a,final_b]
break_out_flag = True
break
if break_out_flag:
break
if not result:
return [-1,-1]
else:
return result
print(solution([4, 23,40, 50]))
ZGVmIHNvbHV0aW9uKGRhdGEpOgogICAgIyBZb3VyIGNvZGUgaGVyZQogICAgCiAgICBwZWdzID0ge30KCiAgICAKICAgIHRlc3RfcmFuZ2UgPSAxMDAwMQoKICAgIGZvciBrLCB2IGluIGVudW1lcmF0ZShkYXRhKToKICAgICAgICAgICAgI2tleSA9IGYicGVnX3trKzF9IgogICAgICAgICAgICBrZXkgPSAncGVnXycgKyBzdHIoaysxKQogICAgICAgICAgICBwZWdzW2tleV0gPSB2CgogICAgcGVnX2xhc3QgPSBwZWdzW2xpc3QocGVncylbLTFdXQogICAgcGVnXzEgPSBwZWdzWydwZWdfMSddCiAgICAKICAgIHJlc3VsdCA9IFtdCiAgICBicmVha19vdXRfZmxhZyA9IEZhbHNlCiAgICAKICAgIGlmIGxlbihwZWdzKSA9PSAyOgogICAgICAgIGZvciBiIGluIHJhbmdlKDEsdGVzdF9yYW5nZSk6CiAgICAgICAgICAgIGZvciBhIGluIHJhbmdlKDEsdGVzdF9yYW5nZSk6CiAgICAgICAgICAgICAgICBpZiAzLzIqKGEvYikgPT0gcGVnX2xhc3QtcGVnXzEgYW5kIGEgPj1iIDoKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBmaW5hbF9hID0gYQogICAgICAgICAgICAgICAgICAgIGZpbmFsX2IgPSBiCiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gW2ZpbmFsX2EsZmluYWxfYl0KICAgIAogICAgICAgICAgICAgICAgICAgIGJyZWFrX291dF9mbGFnID0gVHJ1ZQogICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAKICAgICAgICAgICAgaWYgYnJlYWtfb3V0X2ZsYWc6CiAgICAgICAgICAgICAgICBicmVhayAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAKICAgIGlmIGxlbihwZWdzKSA+IDI6CiAgICAgICAgZm9yIGIgaW4gcmFuZ2UoMSx0ZXN0X3JhbmdlKToKICAgICAgICAgICAgZm9yIGEgaW4gcmFuZ2UoMSx0ZXN0X3JhbmdlKToKICAgIAogICAgICAgICAgICAgICAgc3VtbWF0aW9uID0gMAogICAgICAgICAgICAgICAgcmFkcyA9IHt9CiAgICAgICAgICAgICAgICAjcl8xID0gYS9iCgogICAgICAgICAgICAgICAgZm9yIGssIHYgaW4gZW51bWVyYXRlKCByYW5nZShsZW4oZGF0YSkpICk6CgogICAgICAgICAgICAgICAgICAgICAgICAja2V5ID0gZiJyYWRfe2srMX0iCiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9ICJyYWRfIiArIHN0cihrKzEpCiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzX2tleSA9ICJyYWRfIisgc3RyKGspCgogICAgICAgICAgICAgICAgICAgICAgICBpZiBrID09IDA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gYS9iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWRzW2tleV0gPSB2CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY3VycmVudF9wZWcgPSBwZWdzW2YicGVnX3trKzF9Il0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICNwcmV2aW91c19wZWcgPSBwZWdzW2YicGVnX3trfSJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3BlZyA9IHBlZ3NbInBlZ18iICsgc3RyKGsrMSldCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c19wZWcgPSBwZWdzWyJwZWdfIiArIHN0cihrKV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZHNba2V5XSA9IGN1cnJlbnRfcGVnIC0gcHJldmlvdXNfcGVnIC0gcmFkc1twcmV2aW91c19rZXldCgogICAgICAgICAgICAgICAgZm9yIGsgaW4gcmFuZ2UobGVuKGRhdGEpICk6CgogICAgICAgICAgICAgICAgICAgIGlmIGsgIT0gMCBhbmQgayAhPSBsZW4oZGF0YSkgLSAxOgogICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXRpb24gKz0gMipyYWRzWyJyYWRfIiArIHN0cihrKzEpXQogICAgICAgICAgICAgICAgICAgICAgICAjc3VtbWF0aW9uICs9IDIqcmFkc1tmInJhZF97aysxfSJdCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgcl8xID0gcmFkc1sncmFkXzEnXQogICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiByXzEgKyBzdW1tYXRpb24gKyByXzEvMiA9PSBwZWdfbGFzdC1wZWdfMSBhbmQgYSA+PSBiIDogICAgICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgICAgIGZpbmFsX2EgPSBhCiAgICAgICAgICAgICAgICAgICAgZmluYWxfYiA9IGIKICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBbZmluYWxfYSxmaW5hbF9iXQogICAgCiAgICAgICAgICAgICAgICAgICAgYnJlYWtfb3V0X2ZsYWcgPSBUcnVlCiAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgIAogICAgICAgICAgICBpZiBicmVha19vdXRfZmxhZzoKICAgICAgICAgICAgICAgIGJyZWFrICAgICAgIAogICAgCiAgICBpZiBub3QgcmVzdWx0OgogICAgICAgIHJldHVybiBbLTEsLTFdCiAgICBlbHNlOgogICAgICAgIHJldHVybiByZXN1bHQKICAgICAgICAKcHJpbnQoc29sdXRpb24oWzQsIDIzLDQwLCA1MF0pKQ==