计蒜客蓝桥杯训练营练习题python代码 三、排序的使用

三、排序的使用

1. 分数线

import sys
n=int(input())
line=input().rstrip()
nums=list(map(int,line.split()))
score=[0]*101

for i in nums:
    score[i]+=1
    
numCtr=0
for s in range(100,-1,-1):
    numCtr+=score[s]
    if numCtr*2>n:
        print(s,numCtr)
        sys.exit()

2. 红绿蓝

import sys
s=input().rstrip()
ls=sorted(s)

rCtr=0
gCtr=0
bCtr=0
for i in ls:
    if i=='R':
        rCtr+=1
    elif i=='G':
        gCtr+=1
    elif i=='B':
        bCtr+=1
    else:
        pass
rCtr=int(rCtr/1)
gCtr=int(gCtr/2)
bCtr=int(bCtr/3)

print(''.join(ls))
print(min(rCtr,gCtr,bCtr))

3. 交叉排序

line = input().rstrip()
nums = list(map(int, line.split(' ')))
N=nums[0]
l1=nums[1]
r1=nums[2]
l2=nums[3]
r2=nums[4]

A=[0]
line = input().rstrip()
nums = list(map(int, line.split(' ')))
for i in nums:
    A.append(i)
A[l1:r1+1]=sorted(A[l1:r1+1])
A[l2:r2+1]=sorted(A[l2:r2+1],reverse=True)

print(' '.join(list(map(str,A[1:]))))

4. 前K名的平均数

N=int(input())
nums=list(map(int,input().rstrip().split()))
K=int(input())
nums=list(reversed(sorted(nums)))

avg=sum(nums[0:K])/K


if avg*1000%10==5:
    avg=float(str(avg+0.01)[:-1])
else:
    avg=round(avg,2)
print('%.2f'%avg)

发布了8 篇原创文章 · 获赞 0 · 访问量 32

猜你喜欢

转载自blog.csdn.net/weixin_43755257/article/details/105183802