nyoj-678-最小K個数の和(ソート)
1014 ワード
最小K個数の和
時間制限:
1000 ms|メモリ制限:
65535 KB
難易度:
2
説明
n個の整数を入力し、最小K個の数の和を出力します.例えば、4,5,1,1,6,2,7,3,3の9つの数字を入力し、k=4の場合、出力の最小の4つの数の和は7(1,1,2,3)である.
入力
テストサンプルグループ数が10を超えない
各テストケースは2行です.
第1挙動2個の整数n,k(1<=k<=n<=10000000)
2行目はn個の整数を含み、各整数の範囲は【1~2000】である
しゅつりょく
各テストケースに対応して,最小k個数の和を出力する.
サンプル入力
8 4
5 2 1 3 8 1 9 3
サンプル出力
7
問題解決の考え方:
直接速く並べて、前のK値の和を取ります.
コード#コード#
#include<stdio.h>
#include<algorithm>
using namespace std;
int num[110000];
int main()
{
int n,k;
int i,j;
long long sum;
while(scanf("%d%d",&n,&k)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&num[i]);
sort(num,num+n);
sum=0;
for(i=0;i<k;i++)
sum+=num[i];
printf("%lld
",sum);
}
return 0;
}