Advertisement
Hansrrr

1766

Apr 5th, 2021
892
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.43 KB | None | 0 0
  1. #Elas devem ser ordenadas primeiramente de forma decrescente por peso.
  2. #Caso duas ou mais apresentarem o mesmo peso elas devem ser ordenadas de forma ascendente pela idade
  3. # após pela altura e caso ainda persista empate, pelo nome.
  4. from operator import itemgetter, attrgetter
  5. class Renas():
  6.     def __init__(self,name,weight,age,height):
  7.         self.name = name
  8.         self.weight = weight
  9.         self.age = age
  10.         self.height = height
  11.  
  12.     def __repr__(self):
  13.         return "%s %s %s %s" %(self.name,self.weight,self.age,self.height)
  14.  
  15.     def get_name(self):
  16.         return self.name
  17.     def get_weight(self):
  18.         return self.weight
  19.     def get_age(self):
  20.         return self.age
  21.     def get_height(self):
  22.         return self.height
  23.  
  24.  
  25. def multisort(xs, specs):
  26.  
  27.     for key, reverse in reversed(specs):
  28.  
  29.         xs.sort(key=attrgetter(key), reverse=reverse)
  30.  
  31.     return xs
  32.  
  33. while(True):
  34.     try:
  35.         numberTests = int(input())
  36.         for i in range(numberTests):
  37.             total, utilizadas = input().split(" ")
  38.             total = int(total)
  39.             utilizadas = int(utilizadas)
  40.             lista = [None]*total
  41.             elements = [None]*utilizadas
  42.  
  43.             for j in range(total):
  44.                 name,weight,age,height = input().split(" ")
  45.                 name = str(name)
  46.                 weight = int(weight)
  47.                 age = int(age)
  48.                 height = float(height)
  49.                 a = Renas(name,weight,age,height)
  50.                 lista[j] = a
  51.            
  52.             #for i in range(len(lista)):
  53.             #    print('{} : {}-{}-{}'.format(lista[i].name,lista[i].weight,lista[i].age,lista[i].height))
  54.             #produtos_ordenados = sorted(lista, key=attrgetter('weight'), reverse=True)
  55.             a = multisort(list(lista), (('weight',True),('age',False),('height',False),('name',False)))
  56.  
  57.             print("CENARIO {%d}" %(i+1))        
  58.             for i in range(utilizadas):
  59.                 print('{} - {}'.format(i+1,a[i].name))
  60.             #quick_sort(lista,0,len(lista), lambda x,y: x.weight < y.weight)
  61.  
  62.             #for i in range(len(produtos_ordenados)):
  63.             #    print(produtos_ordenados[i])
  64.             #print('\n')
  65.  
  66.             #for i in range(len(produtos_ordenados2)):
  67.              #   print(produtos_ordenados2[i])            
  68.            
  69.            
  70.            
  71.  
  72.        
  73.            
  74.  
  75.     except EOFError:
  76.         break
  77.  
  78.  
  79.  
  80.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement