6 条题解

  • 2
    @ 2023-9-19 16:27:05

    以下给出python解法

    #输入
    data = list(map(int,input().split()))
    a,b = map(int,input().split())
    #排序
    data.sort()
    #左右索引号,初值为左右两端点
    l,r=0,len(data)-1
    #求左索引号
    for i in data:
        #不知道是否有用的特判
        if (l==0):
            if data[0] > b :
                #其实就是无结果
                l = r+1
                break
        if ( data[l] >=a ):
            break
        l = l+1
    #求右索引号
    for i in data[::-1]:
        if (r==len(data)-1):
            if (data[r] < a):
                r = -1
                break
        if ( data[r] <=b ):
            break
        r = r -1
    #无结果则输出-1
    if (l>=r):
        print(-1)
    #有结果则输出结果
    else :
        #print(data[l:r+1])
        nums = 0
        for i in data[l:r+1]:
            print(i,end=" ")
            nums = nums + 1
        #不用加会有空格
        print("\n"+str(nums))
    

    因为data[]中不一定会有等于a或者b的值,所以str.index()是没法用的

    信息

    ID
    802
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    1191
    已通过
    237
    上传者