codeforces706B 【python】

来源:互联网 发布:视频软件 知乎 编辑:程序博客网 时间:2024/05/21 11:21

第一版写法(如下)TLE了,所以得用二分啊

def get_result(wine_price,today_money):        for i in range(len(wine_price)):        if wine_price[i] > today_money:            return i    return len(wine_price)    n = int(raw_input())wine_price = map(int,raw_input().split())wine_price = sorted(wine_price)q = int(raw_input())for i in range(q):    temp = int(raw_input())    print get_result(wine_price,temp)

第二版写法(如下)

def get_index(wine_price,today_money):    left = 0    right = len(wine_price) - 1    while left < right:        mid = (left + right)/2        if wine_price[mid] <= today_money:            left = mid + 1        else:            right = mid    return rightdef get_result(wine_price,today_money):    result = get_index(wine_price,today_money)    if result == (len(wine_price)-1) and today_money >= wine_price[-1]:        result += 1    return result    n = int(raw_input())wine_price = map(int,raw_input().split())wine_price = sorted(wine_price)q = int(raw_input())for i in range(q):    temp = int(raw_input())    print get_result(wine_price,temp)