1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| def find_min_in_range(l, lb, ub): if lb > l[-1] or ub < l[0]: return -1 for x in l[:]: if x >= lb: l.remove(x) return x
def find_max_in_range(l, lb, ub): if ub < l[-1] or lb > l[0]: return -1 for x in l[:]: if x <= ub: l.remove(x) return x
l0 = [3, 5, 1, 7, 4, 2, 9, 9] l1 = l0[:] l1.sort()
l2 = l1[:] l2.reverse()
min_h0 = find_min_in_range(l1, 0, 2) if min_h0 == 2: min_h1 = find_min_in_range(l1, 0, 3) else: min_h1 = find_min_in_range(l1, 0, 9)
min_m0 = find_min_in_range(l1, 0, 5) min_m1 = find_min_in_range(l1, 0, 9)
min_s0 = find_min_in_range(l1, 0, 5) min_s1 = find_min_in_range(l1, 0, 9)
max_h0 = find_max_in_range(l2, 0, 2) if max_h0 == 2: max_h1 = find_max_in_range(l2, 0, 3) else: max_h1 = find_max_in_range(l2, 0, 9)
max_m0 = find_max_in_range(l2, 0, 5) max_m1 = find_max_in_range(l2, 0, 9)
max_s0 = find_max_in_range(l2, 0, 5) max_s1 = find_max_in_range(l2, 0, 9)
if -1 in [min_h0, min_h1, min_m0, min_m1, min_s0, min_s1, max_h0, max_h1, max_m0, max_m1, max_s0, max_s1]: print('invalid data') else: print("min clock: %s%s:%s%s:%s%s" % (min_h0, min_h1, min_m0, min_m1, min_s0, min_s1)) print("max clock: %s%s:%s%s:%s%s" % (max_h0, max_h1, max_m0, max_m1, max_s0, max_s1))
|