有一个国家有n个公民。他们中的第i个最初是ai
钱。政府严格控制其公民的财富。每当公民购物或赚钱时,他们都必须向社会服务机构发送收据,注明他们目前拥有的金额。
有时候,政府会向穷人支付款项:所有收入严格低于x的公民 相应地付款,以便在付款之后,他们有正好x
钱。在这种情况下,市民不会发送收据。
您知道每个公民的初始财富以及所有事件的日志:收据和支出。恢复所有事件发生后每个公民的财产。 输入
第一行包含一个整数n (1≤n≤2⋅105)-公民人数。
下一行包含n 整数a1,a2,...,an(0≤ai≤109)—公民的初始余额。
下一行包含一个整数q (1≤q≤2⋅105)-事件数。
下一个q
行包含一个事件。这些事件按时间顺序给出。
每个事件都被描述为1 p x(1≤p≤n ,0≤x≤109)或2 x(0≤x≤109)。在第一种情况下,我们收到第p个人的余额等于x的收据。在第二种情况下,我们得到了带有参数x
的收益。 输出
打印n 整数-所有事件发生后所有公民的余额。
我解决该问题的方法是将问题分为子问题,并通过具有不同功能的每种类型的查询来更新数组
def fun(l,a,n):
for i in range(n):
if a[i]<=l[1]:
a[i]=l[1]
def fun2(l,a,n):
a[l[1]-1]=l[2]
n=int(input())
a=list(map(int,input().split()))
#q=int(input())
for _ in range(int(input())):
l=list(map(int,input().split()))
if l[0]==2:
fun(l,a,n)
else:
fun2(l,a,n)
print(*a)
预期输入: 4 1 2 3 4 3 2 3 1 2 2 2 1 预期产量: 3 2 3 4 预期输入2: 5 3 50 2 1 10 3 1 2 0 2 8 1 3 20 预期产量: 8 8 20 8 10 我的解决方案因在测试用例5之后抛出测试用例中超出的时间限制而失败 是否有任何优化或改进措施可以完全解决此问题??