192752025-12-03 16:30:37birozs20G (40 pont)python3Accepted 40/40193ms15108 KiB
N,M = map(int,input().split())
T = list(map(int,input().split()))
for i in range(1,N):
    if T[i] < T[i-1]:
        T[i] = T[i-1]
lepes = 1
while 2 ** lepes < N:
    lepes += 1

for _ in range(M):
    H = int(input())
    if H == T[-1]:
        print(N)
    elif H < T[0]:
        print(1)
    else:
        eleje = 0
        vege = N - 1
        for _ in range(lepes):
            if T[(eleje+vege)//2] <= H:
                eleje = (eleje + vege) // 2
            elif T[(eleje+vege)//2] > H:
                vege = (eleje + vege) // 2
        while T[eleje] <= H:
            eleje += 1
        print(eleje + 1)
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/016ms3312 KiB
2Accepted0/0172ms14468 KiB
3Accepted2/216ms3108 KiB
4Accepted2/216ms3124 KiB
5Accepted2/221ms3004 KiB
6Accepted2/228ms3124 KiB
7Accepted3/332ms3392 KiB
8Accepted3/3184ms14892 KiB
9Accepted3/3190ms14892 KiB
10Accepted3/3184ms15108 KiB
11Accepted4/4179ms14892 KiB
12Accepted4/4193ms14896 KiB
13Accepted4/4182ms14772 KiB
14Accepted4/4187ms14764 KiB
15Accepted4/4188ms14892 KiB