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; }