Codechef Runtime Error-减少内存使用

Codechef Runtime Error-Reduce the memory usage

我在 codechef 中遇到 运行时间错误(额外内存使用)。每当我使用其他 IDE 到 运行 我的 python 代码时,我都会得到正确的预期输出。

问题是: Chefland 一周有 7 天。大厨对他一周内完成的工作非常在意。

他在一周内可以通过两种方式消耗精力。第一种方法是每天做 x 个单位的工作,第二种方法是前 d (<7) 天做 y (>x) 个单位的工作,之后做 z (

如果他可以自由选择这两种策略中的任何一种,请找出他在一周内可以完成的最大工作量。

我的代码:

# cook your dish here
t = int(input("Number of test cases"))
print(t)
i= 0
while i <= t:
    i += 1
    if i > t:
        break
    d = int(input("No of Days"))
    x = int(input("Number of units of work everyday"))
    y = int(input(f"No of units of work for {d} days"))
    z= int(input("No of units of work for remaining days"))
    a = 7*x
    if y > x:
        if d < 7:
            b = d * y
            if z < x:
                c = z * (7-d)
                sum = b + c
    
    print(max(a,sum))

当我使用 python 运行 在线编译器中的代码但是当我提交它时,我没有收到任何错误。它表明存在 运行time error(RE)。这意味着我必须减少代码的内存使用。当我 运行 并执行时,内存使用量为 17.968kb,但它应该低于 4.882kb。

如何减少代码的内存使用量。

我该如何解决这个问题。

提前致谢。

尝试使用 for 循环。它将删除 i.

的使用

for i in range(t)

这可能对您有所帮助

。请将您的变量命名为易于理解的名称,这可能会有所帮助:)

你需要这样写代码。

# cook your dish here
T = int(input())
i= 0
while i <= T:
    i += 1
    if i > T:
        break
    d, x, y, z  = map(int, input().split())
    a = 7*x
    if y > x:
        if d < 7:
            b = d * y
            if z < x:
                c = z * (7-d)
                sum = b + c
    
    print(max(a,sum))

我尝试过使用 try 和 except。删除运行时错误。

我的代码:

#cook your dish here
try:
    # TODO: write code...
    T = int(input())
    print(T)
    i= 0
    while i <= T:
        i += 1
        if i > T:
            break
        d, x, y, z  = map(int, input().split())
        a = 7*x
        if y > x:
            if d < 7:
                b = d * y
                if z < x:
                    c = z * (7-d)
                    sum = b + c
        
        print(max(a,sum))
    
except Exception:
    pass

执行 运行 完全符合预期输出但是当我提交答案时显示错误 answer.When 我提交它时没有添加 try 和 except 函数然后“运行时错误(NZEC) " 正在显示。

是的,您需要在自定义输入字段中提供一些输入。复制给定问题的输入,将其粘贴到自定义输入部分,然后 运行。它会起作用。