from enum import Enum import sys class Kortfarge(Enum): KL?VER = 1 RUTER = 2 SPAR = 3 HJERTER = 4 def __eq__(self, other): return self.value == other.value def __lt__(self, other): return self.value < other.value def __le__(self, other): return self.value <= other.value def print_kort(kort): print(kort["farge"].name, kort["verdi"]) kortene_mine = [ { "farge": Kortfarge.HJERTER, "verdi": 1 }, { "farge": Kortfarge.HJERTER, "verdi": 2 }, { "farge": Kortfarge.KL?VER, "verdi": 1 }, { "farge": Kortfarge.KL?VER, "verdi": 11 }, { "farge": Kortfarge.SPAR, "verdi": 9 }, { "farge": Kortfarge.RUTER, "verdi": 6 }, { "farge": Kortfarge.RUTER, "verdi": 7 }, { "farge": Kortfarge.KL?VER, "verdi": 7 }, { "farge": Kortfarge.HJERTER, "verdi": 13 }, { "farge": Kortfarge.HJERTER, "verdi": 8 } ] def bucket_sort_farge(A): buckets = [] for _ in range(4): buckets.append([]) for kort in A: bucket = kort["farge"].value - 1 buckets[bucket].append(kort) i = 0 for bucket in buckets: for elem in bucket: A[i] = elem i = i + 1 return A def bucket_sort_verdi(A): buckets = [] for _ in range(13): buckets.append([]) for kort in A: bucket = kort["verdi"] - 1 buckets[bucket].append(kort) i = 0 for bucket in buckets: for elem in bucket: A[i] = elem i = i + 1 return A def bucket_sort(A, bucket_amount, find_bucket): buckets = [] for _ in range(bucket_amount): buckets.append([]) for elem in A: bucket = find_bucket(elem) buckets[bucket].append(elem) i = 0 for bucket in buckets: for elem in bucket: A[i] = elem i = i + 1 return A # bucket_sort_verdi(kortene_mine) # bucket_sort_farge(kortene_mine) def find_bucket_for_value(kort): return kort["verdi"] - 1 def find_bucket_for_color(kort): return kort["farge"].value - 1 # bucket_sort(kortene_mine, 13, find_bucket_for_value) # bucket_sort(kortene_mine, 4, find_bucket_for_color) bucket_sort(kortene_mine, 13, lambda kort: kort["verdi"] - 1) bucket_sort(kortene_mine, 4, lambda kort: kort["farge"].value - 1) # for kort in kortene_mine: # print_kort(kort) def radix_sort(A): max_num = max(A) digit = 0 while max_num >= 10**digit: bucket_sort(A, 10, lambda num: (num // (10**digit)) % 10) digit += 1 return A nums = [] for line in sys.stdin: nums.append(int(line)) print(radix_sort(nums))