问题描述
kAc有n堆糖果,每堆有A[i]个。
kAc说你只能拿m次糖果,聪明的你当然想要拿最多的糖果来吃啦啦啦~
//第二天,kAc问你还想吃糖果么?(嘿嘿嘿)说着眼角路出奇怪的微笑...
输入格式
第一行两个数字n和m,第二行有n个数字A[i]。
输出格式
输出一行表示最多能拿几个糖果。
样例输入
2 2
1 2
样例输出
3
数据规模和约定
0<n≤1000
其余数字都是不超过1,000,000,000的非负整数。
思路:排序从多选到少,n堆糖果选m堆,(注意:总糖果数应该用long long来定义)
#include<iostream>
using namespace std;
int main(){
int n,m;
cin>>n;
cin>>m;
int A[n];
for(int i=0;i<n;i++){
cin>>A[i];
}
int c=n;
for(;n>0;n--){
for(int i=0;i<n-1;i++){
if(A[i]<A[i+1]){
int b=A[i];
A[i]=A[i+1];
A[i+1]=b;
}
}
}
long long sum=0;
for(int i=0;i<m&&i<c;i++){
sum += A[i];
}
cout<<sum<<endl;
return 0;
}