求助py大佬,只有60分,改了很多遍了
查看原帖
求助py大佬,只有60分,改了很多遍了
1491687
heyongheng_20242782楼主2024/10/27 15:13
n=int(input())
a=[]
tt={"BangZhu":7,"FuBangZhu":6,"HuFa":5,'ZhangLao':4,"TangZhu":3,"JingYing":2,"BangZhong":1}
ttt={7:"BangZhu",6:"FuBangZhu",5:"HuFa",4:"ZhangLao",3:"TangZhu",2:"JingYing",1:"BangZhong"}
for i in range(n):
    a.append(list(map(str,input().split())))
    a[i][2]=int(a[i][2])
    a[i][3]=int(a[i][3])
    a[i][1]=tt[a[i][1]]
q=[]#单独提出帮主和副帮主
qq=0
while qq<len(a):
    if a[qq][1]==7 or a[qq][1]==6:
        a[qq][1]=ttt[a[qq][1]]
        q.append(a[qq])
        a.pop(qq)
    else:
        qq+=1
q.sort(key=lambda x:x[1])
a.sort(key=lambda x:x[2],reverse=True)
def f(x,y):#x为职位大小,y为有几个,
    for i in range(len(a)):#分配职位
        if len(a[i])==4 and a[i][1] not in [7,6]:
            a[i][1]=x
            a[i].append(1)
            y-=1
            if y==0:
                break
f(5,2)
f(4,4)
f(3,7)
f(2,25)
f(1,len(a))
a.sort(key=lambda x:x[3],reverse=True)
a.sort(key=lambda x:x[1],reverse=True)
for i in range(len(q)):#输出帮主和副帮主
    for j in range(4):
        if j==2:
            continue
        print(q[i][j],end=' ')
    print()
for i in range(len(a)):
    a[i][1]=ttt[a[i][1]]
for i in range(len(a)):#输出其他人
    for j in range(4):
        if j==2:
            continue
        print(a[i][j],end=' ')
    print()

感谢各位大佬了orz

2024/10/27 15:13
加载中...