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) " 正在显示。
是的,您需要在自定义输入字段中提供一些输入。复制给定问题的输入,将其粘贴到自定义输入部分,然后 运行。它会起作用。
我在 codechef 中遇到 运行时间错误(额外内存使用)。每当我使用其他 IDE 到 运行 我的 python 代码时,我都会得到正确的预期输出。
问题是: Chefland 一周有 7 天。大厨对他一周内完成的工作非常在意。
他在一周内可以通过两种方式消耗精力。第一种方法是每天做 x 个单位的工作,第二种方法是前 d (<7) 天做 y (>x) 个单位的工作,之后做 z ( 如果他可以自由选择这两种策略中的任何一种,请找出他在一周内可以完成的最大工作量。 我的代码: 当我使用 python 运行 在线编译器中的代码但是当我提交它时,我没有收到任何错误。它表明存在 运行time error(RE)。这意味着我必须减少代码的内存使用。当我 运行 并执行时,内存使用量为 17.968kb,但它应该低于 4.882kb。 如何减少代码的内存使用量。 我该如何解决这个问题。 提前致谢。# 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))
尝试使用 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) " 正在显示。
是的,您需要在自定义输入字段中提供一些输入。复制给定问题的输入,将其粘贴到自定义输入部分,然后 运行。它会起作用。