SYSU 2023 新手赛 | Problem L. 晚餐铃

 Python的求解代码如下:

#输入数据数量
T=int(input(''))
N=[]
L=[]
for i in range(T):
    #输入一个整数n,表示苦涩的回忆被分成n勺雪
    n=int(input(''))
    N.append(n)
    #输入n个整数,第i个整数为ai,表示第i勺雪的痛苦值
    m=input('')
    M=[int(i) for i in m.split()]
    L.append(M)

'''利用算法求解结果'''
A=[]  #存储结果
for i in range(T):
    r=0  #结果
    #判断非负数的个数
    a=0
    for j in L[i]:
        if j>=0:
            a=a+1

    if a==N[i]:
        r=L[i][0]
        for k in L[i]:
            if k>r:
                r=k
        A.append(r)
    elif a==0:
        for k in L[i]:
            r=r+k
        A.append(r)
    else:
        V=[]  #对数据进行正负分组
        w=-1  #定义负值的位置
        for k in range(N[i]):
            if L[i][k]<0:
                g=[]
                for v in range(w+1,k):
                    g.append(L[i][v])
                V.append(g)
                V.append([L[i][k]])
                w=k
        if w<N[i]:
            for k in range(w+1,N[i]):
                g=[L[i][k]]
                V.append(g)
        Y=[]
        for d in V:
            max=d[0]
            for f in d:
                if f>max:
                    max=f
            Y.append(max)
        #计算结果
        for h in Y:
            r=r+h
        A.append(r)

#按照标准格式输出结果
for i in A:
    print(i)

求解过程和结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天下弈星~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值