Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Hacker:
- def calc(self, value):
- sum = 0
- visited = {}
- for i in range(0, 10):
- sum = sum + 1
- if value == "%d%d%d%d" % (i, i, i, i):
- return sum
- visited["%d%d%d%d" % (i, i, i, i)] = True
- for i in range(0, 7):
- sum = sum + 1
- if value == "%d%d%d%d" % (i, i+1, i+2, i + 3):
- return sum
- visited["%d%d%d%d" % (i, i+1, i+2, i + 3)] = True
- sum = sum + 1
- if value == "%d%d%d%d" % (i+3, i+2, i+1, i):
- return sum
- visited["%d%d%d%d" % (i+3, i+2, i+1, i)] = True
- for i in range(1900, 2018):
- sum = sum + 1
- if value == "%04d" % i:
- return sum
- visited["%04d" % i] = True
- for i in range(1, 13):
- for j in range(1, [31,29,31,30,31,30,31,31,30,31,30,31][i-1] + 1):
- if i == j:
- if not visited.get("%02d%02d" % (i, j), False):
- sum = sum + 1
- if value == "%02d%02d" % (i, j):
- return sum
- visited["%02d%02d" % (i, j)] = True
- else:
- if not visited.get("%02d%02d" % (i, j), False):
- sum = sum + 1
- if value == "%02d%02d" % (i, j):
- return sum
- visited["%02d%02d" % (i, j)] = True
- if not visited.get("%02d%02d" % (j, i), False):
- sum = sum + 1
- if value == "%02d%02d" % (j, i):
- return sum
- visited["%02d%02d" % (j, i)] = True
- for i in range(0, 5001):
- if not visited.get("%04d" % i, False):
- sum = sum + 1
- if value == "%04d" % i:
- return sum
- if not visited.get("%04d" % (10000 - (i+1)), False):
- sum = sum + 1
- if value == "%04d" % (10000 - (i+1)):
- return sum
- class Debil:
- def calc(self, value):
- sum = 0
- for i in range(0, 10000):
- sum = sum + 1
- if value == "%04d" % i:
- return sum
- class SemiDebil:
- def calc(self, value):
- sum = 0
- for i in range(0, 2501):
- sum = sum + 1
- if value == "%04d" % i:
- return sum
- sum = sum + 1
- if value == "%04d" % (10000 - (i+1)):
- return sum
- sum = sum + 1
- if value == "%04d" % (5000 - (i+1)):
- return sum
- sum = sum + 1
- if value == "%04d" % (5000 + i):
- return sum
- def main():
- d = Debil()
- m = SemiDebil()
- h = Hacker()
- ans = [0] * 10000
- for i in range(0,10000):
- str = "%04d" % i
- ans[i] = (i, min(d.calc(str), m.calc(str), h.calc(str)))
- print(sorted(ans, key=lambda a: a[1]))
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement