李家乐
(李家乐)
1
2. 找5个数字
题目ID:9721必做题100分
最新提交:0 分
历史最高:0 分
时间限制: 200ms
空间限制: 65535kB
题目描述
时间:0.2s 空间:64M
【题目描述】
给定 8 个数字 X1,X2,…,X8,从中选出 5 个数字,使得这 5 个数字的总和最大。输出这 5 个数字的和以及它们的编号。Xi 的编号为 i。
【输入描述】
输入共 8 行,第 i 行包含一个正整数 Xi 。保证所有 Xi 互不相同。
【输出描述】
输出共两行。
第一行包含一个整数,表示最大的总和。
第二行包含 5 个整数,表示 5 个数的编号,按升序排序。
【样例输入】
20 30 50 48 33 66 10 64
【样例输出】
261 3 4 5 6 8
约定:
对于 100% 的数据,1≤Xi≤150。
提示:
/
/
我的想法是:先排序,取后五位,再把后五位求和,取序号,但是体现不到代码上
施泽家
(施泽家)
2
//头文件自己写
typedef pair<int,int> p;
bool cmp(p a,p b)
{
return a.secont>b.secont;
}
int main()
{
vecotor<p> a;
for(int i=1;i<=n;i++)
{
int x;
//输入x
a.push_back({i,x});
}
sort(a.begin(),a.end(),cmp);
int sum=0;
set<int> index;
for(int i=0;i<5;i++)
{
index.insert(a[i].first);
sum+=a[i].secontl
}
输出sum并换行
for(auto i:index)
{
//输出i
}
return 0;
}
3 个赞
黄翰昇
(아파트)
5
可以用结构体数组如果没学过结构体、还有结构体排序的别用