csp202006-2
ans =list(map(int,input().split()))
n,a,b=ans[0],ans[1],ans[2]
u={}
result=0
import sys
for line in sys.stdin.readlines():
index,value = map(int,line.strip('/n').split())
if a>0 :
u[index]=value
a-=1
else:
if index in u:
result+=u[index]*value
print(result)
核心问题是读取,因为a,b数据量都很大,所以input不能用,如果使用std标准输入,则需要注意它读取的每一行都是包括换行符
上述代码的读取可以一次性读取,转列表,这样做耗时更少,空间要大一些
使用list实现的代码只有六十分,不知道为什么,个人感觉是因为如果使用list
ans =list(map(int,input().split()))
n,a,b=ans[0],ans[1],ans[2]
u=[0]*n
result=0
import sys
for line in sys.stdin.readlines():
index,value = map(int,line.strip('/n').split())
if a>0 :
u[index-1]=value
a-=1
else:
if u[index-1]!=0:
result+=u[index-1]*value
print(result)
如果使用list,list找序号需要时间,是主要出错地方