if __name__ == "__main__":     n, w = map(int, input().strip().split())     z = list(map(int, input().strip().split()))     t = list(map(int, input().strip().split()))     p = 0     i = 0     record = []     pre = -1     ans = 0     while True and i<n:         if p+z[i]<=w:             p += z[i]             record.append([z[i], t[i]])             i += 1         else:             record = sorted(record, key=lambda x: x[1])             pre = record[0][1]             p -= record[0][0]             ans += pre             record = record[1:]             while record and pre==record[0][1]:                 p -= record[0][0]                 record = record[1:]             if record:                 record = [[x[0], x[1]-pre] for x in record]     if record:         ans += max([x[1] for x in record])     print(ans) 第一题咋做啊
点赞 3

相关推荐

不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
牛客网
牛客企业服务