问题 5811 --不一般的密码

5811: 不一般的密码★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 19  解决: 14
[提交][状态][命题人:]

题目描述

def select_num(nums,k):
    stack=[0]*len(nums);
    top=-1; cnt=len(nums)-k
    for num in nums:
        while cnt>0 and top!=-1 and stack[top]<num:
            top-=1; cnt-=1
        top+=1;
        _______(1)__________
    while cnt>0:
        top-=1; cnt-=1
    return stack[0:top+1]
def merge(a,b):
    c=''; i=0; j=0
    while ______(2)_________:
        if j==len(b) or i<len(a) and a[i]>=b[j]:
            c+=str(a[i]); i+=1
        elif i==len(a) or j<len(b) and a[i]<b[j]:
            c+=str(b[j]); j+=1
    return int(c)
n,m=map(int,input().split())
num1=list(map(int,input().split()))
num2=list(map(int,input().split()))
k=int(input())
_______(3)________
for i in range(1,k):
    a=select_num(num1,i)
    ______(4)_________
    c=merge(a,b)
    if c>m:
        m=c
print(m)

输入

第一行为两个整数n和m,分别表示两个数组中的元素个数,均小于10

第二行为第一个数组的n个元素,空格隔开

第三行为第二个数组的m个元素,空格隔开

第四行单独输入一个整数k, k<=n+m

两个数组中的元素由数字1~9组成

输出

按要求输出密码
样例输入
Copy
6 7
3 4 6 5 7 8
9 1 2 5 8 3 4
6
样例输出
Copy
987834

提示

样例2输入

6 8
3 4 6 5 7 8
9 1 2 5 8 3 4 6
6
样例2输出

988346

来源

[提交][状态]