#37907: 差一點點


s11104220@school.saihs.edu.tw (施同學)

學校 : 臺北市立松山高級工農職業學校
編號 : 221254
來源 : [118.165.11.221]
最後登入時間 :
2024-02-04 16:09:17
e465. 置物櫃分配 -- 2018年10月APCS | From: [118.165.1.197] | 發表日期 : 2023-10-17 20:37

def main():
    from sys import stdin
    m,s,n=map(int,stdin.readline().split())
    a=[int(i) for i in stdin.readline().split()]
    sa=sum(a)
    msa=m-sa
    if msa>=s:print(0)
    else:
        ns=s-msa
        st=[(0,sa)]
        ma=99999999
        while st:
            i,su=st.pop()
            if i==n:
                if su<ma:ma=su
            else:
                st.append((i+1,su))
                if su-a[i]==ns:
                    ma=s
                    break
                elif su-a[i]>ns:
                    st.append((i+1,su-a[i]))
                else:
                    if su<ma:ma=su
        print(ma-msa)
if __name__=="__main__":main()
 
#37908: Re: 差一點點


s11104220@school.saihs.edu.tw (施同學)

學校 : 臺北市立松山高級工農職業學校
編號 : 221254
來源 : [118.165.11.221]
最後登入時間 :
2024-02-04 16:09:17
e465. 置物櫃分配 -- 2018年10月APCS | From: [118.165.1.197] | 發表日期 : 2023-10-17 20:40

def main():
    from sys import stdin
    m,s,n=map(int,stdin.readline().split())
    a=[int(i) for i in stdin.readline().split()]
    sa=sum(a)
    msa=m-sa
    if msa>=s:print(0)
    else:
        ns=s-msa
        st=[(0,sa)]
        ma=99999999
        while st:
            i,su=st.pop()
            if i==n:
                if su
            else:
                st.append((i+1,su))
                if su-a[i]==ns:
                    ma=s
                    break
                elif su-a[i]>ns:
                    st.append((i+1,su-a[i]))
                else:
                    if su
        print(ma-msa)
if __name__=="__main__":main()


只差幾個字

 
ZeroJudge Forum