php网站上做微信支付功能,里水九江网站建设,榆林市建设局网站,罗店网站建设P7614 [COCI2011-2012#2] NAJBOLJIH 5 
题目描述 
给定  8 8 8 个数字  X 1 , X 2 , . . . , X 8 X_1,X_2,...,X_8 X1,X2,...,X8#xff0c;从中选出  5 5 5 个数字#xff0c;使得这  5 5 5 个数字的总和最大。输出这  5 5 5 个数字的和以及它们的编号。 X i X_i Xi…P7614 [COCI2011-2012#2] NAJBOLJIH 5 
题目描述 
给定  8 8 8 个数字  X 1 , X 2 , . . . , X 8 X_1,X_2,...,X_8 X1,X2,...,X8从中选出  5 5 5 个数字使得这  5 5 5 个数字的总和最大。输出这  5 5 5 个数字的和以及它们的编号。 X i X_i Xi 的编号为  i i i。 
输入格式 
输入共  8 8 8 行第  i i i 行包含一个正整数  X i X_i Xi。保证所有  X i X_i Xi 互不相同。 
输出格式 
输出共两行。 
第一行包含一个整数表示最大的总和。 
第二行包含  5 5 5 个整数表示  5 5 5 个数的编号按升序排序。 
样例 #1 
样例输入 #1 
20
30
50
48
33
66
0
64样例输出 #1 
261
3 4 5 6 8样例 #2 
样例输入 #2 
20
0
50
80
77
110
56
48样例输出 #2 
373
3 4 5 6 7样例 #3 
样例输入 #3 
20
30
50
80
110
11
0
85样例输出 #3 
355
2 3 4 5 8提示 
【数据范围】 
对于  100 % 100\% 100% 的数据 1 ≤ X i ≤ 150 1 \le X_i \le 150 1≤Xi≤150。 
【说明】 
本题分值按 COCI 原题设置满分  50 50 50。 
题目译自 COCI2011-2012 CONTEST #2 T1 NAJBOLJIH 5。 
代码实现 
由于需要对输入的 8 个数字取最大的 5 个数字计算其总和并以升序输出其编号故在输入时将每个输入的数字与其编号绑定元组形式存储并直接进行排序取 top 5。 
使用 sorted() 函数先根据数字大小进行排序取出最大的 5 个数字对这 5 个数字进行编号的升序排列统计 5 个数字的总和依次输出这些数字的编号 
top5  sorted(sorted([(i  1, int(input().strip())) for i in range(8)], keylambda x: -x[1])[:5], keylambda x: x[0])
print(sum(i[1] for i in top5))
print( .join([str(i[0]) for i in top5]))