Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fin=open("in.in","r")
- fout=open("out.out","w")
- l=[]
- greutate=int(fin.readline())
- for i in fin:
- aux=i.split()
- t=tuple((len(l)+1,float(aux[0]),float(aux[1]),float(aux[1])/float(aux[0])))
- l.append(t)
- def keycomp(obicete):
- return obiecte[3]
- def alegere_pivot(l):
- if len(l)<=5:
- return sorted(l,key=keycomp)[len(l)//2]
- subliste=[sorted(l[i:i+5]) for i in range(0,len(l),5)]
- mediane=[sl[len(sl)//2] for sl in subliste]
- return alegere_pivot(mediane)
- def functie_principala(l,greutate,solutie):
- pivot=alegere_pivot(l)
- L=[x for x in l if x[3]<pivot[3]]
- E=[x for x in l if x[3]==pivot[3]]
- H=[x for x in l if x[3]>pivot[3]]
- if sum(ob[1] for ob in H)>greutate:
- functie_principala(H,greutate,solutie)
- else:
- solutie+= [(*ob,1) for ob in H]
- greutate-= sum(ob[1] for ob in H)
- i=0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement