20221005 排序

做了几个排序的题,难度不大,做完可能只算熟悉一下sort和sorted两个函数,巩固一下基础。还是记录一下。过两天有空看一下快速排序吧

1.[NOIP2006 普及组] 明明的随机数

N=int(input())
L=set(map(int,input().split()))
L=sorted(L)
print(len(L))
for i in range(0,len(L)):
    print(L[i],end=" ")

2.[USACO07DEC]Bookshelf B

N,S=map(int,input().split())
H=list()
k=0
for x in range(0,N):
    H.append(int(input()))
H.sort(reverse=True)
for x in range(0,N):
    k+=H[x]
    if k>=S:
        break
print(x+1)

 3.【深基9.例1】选举学生会

n,m=map(int,input().split())
vote=list(map(int,input().split()))
vote.sort()
for x in range(0,m):
    print(vote[x],end=" ")

 4.[NOIP2007 普及组] 奖学金

def sortkey(L):
    return L[3]
n=int(input())
L=list()
t=list()
for i in range(0,n):
    L.append(list(map(int,input().split())))
    SUM=L[i][0]+L[i][1]+L[i][2]
    L[i].append(SUM)
    L[i].append(i+1)
L.sort(key=sortkey,reverse=True)

for i in range(0,n-1):
    if L[i][3]==L[i+1][3]:
        if L[i][0]==L[i+1][0]:
            if L[i][4]>L[i+1][4]:
               L[i],L[i+1]=L[i+1],L[i]
        if L[i][0]<L[i+1][0]:
            L[i],L[i+1]=L[i+1],L[i]
for i in range(0,5):
    print(L[i][4],L[i][3])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值