首页 > 试题广场 >

题目列表

[编程题]题目列表
  • 热度指数:1937 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
    小明同学收集了 n 道编程问题,他想做一个网站把这些题目放在上面,对于每一道问题给出问题的名称 name ,该问题的提交次数 X ,该问题的通过次数 Y。一个问题的通过率定义为 Y/X 。小明根据通过率把问题难度分了 3 个登记:
    1.通过率 ,难度为 5
    2.通过率 ,难度为 4
    3.通过率 ,难度为 3
    为了方便大家查阅题目,小明希望所有题目按照题目名称的字典序从小到大排列在网站上,并且能显示每个题目的难度,你能帮他实现吗?

数据范围: ,每个 name 的长度满足 ,name 中只有小写字母, 。保证输入的名称各不相同

输入描述:
输入一个数 n ,接下来有 n 行,每行输入一个字符串 name ,整数 X ,证书 Y ,依次表示每个题目的名称,提交次数和通过次数。


输出描述:
输出 n 行,按字典序从小到大排序后的题目,每行先输出一个字符串,题目的名称,再输出一个数,题目的难度等级用一个空格隔开。
示例1

输入

4
math 100 90
algorithm 10 8
string 50 1
dp 100 50

输出

algorithm 3
dp 4
math 3
string 5
n = int(input())
ans = []
for _ in range(n):
    name, X, Y = input().split()
    X = int(X)
    Y = int(Y)
    if(Y * 1.0 / X <= 0.3):
        level = 5
    elif(Y * 1.0 / X > 0.3 and Y * 1.0 / X <= 0.6):
        level = 4
    else:
        level = 3
    ans.append([name, level])
ans.sort(key = lambda x: x[0])
for t in ans:
    print(t[0], t[1])

发表于 2019-03-28 21:51:56 回复(0)

python解法

arr = []
for i in range(int(input())):
    a, b, c = input().split()
    if 0.6 < int(c) / int(b):
        difficulty = "3"
    elif int(c) / int(b) <= 0.3:
        difficulty = "5"
    else:
        difficulty = "4"
    arr.append(a + " " + difficulty)

for i in sorted(arr):
    print(i)
编辑于 2019-02-24 19:46:16 回复(0)

问题信息

难度:
2条回答 3090浏览

热门推荐

通过挑战的用户

查看代码
题目列表