Skip to content

Latest commit

 

History

History
44 lines (34 loc) · 862 Bytes

048.md

File metadata and controls

44 lines (34 loc) · 862 Bytes

048 - I will not drop out (★3)

解答

#include <iostream>
#include <vector>
#include <algorithm> // std::sort()
#include <functional> // std::greater<>
#include <numeric> // std::reduce()

int main()
{
	// N 問, K 分間
	int N, K;
	std::cin >> N >> K;

	std::vector<int> scores;

	for (int i = 0; i < N; ++i)
	{
		// 満点 A 点, 部分点 B 点
		int A, B;
		std::cin >> A >> B;

		// 1 分で得られるスコア
		const int s1 = B;
		scores.push_back(s1);

		// もう 1 分で得られるスコア
		const int s2 = (A - B);
		scores.push_back(s2);
	}

	// 大きい順にソート
	std::sort(scores.begin(), scores.end(), std::greater<>{});

	// 先頭 K 要素の合計を求める (long long 型で求める)
	const long long a = std::reduce(scores.begin(), scores.begin() + K, 0LL);

	// 解答を出力
	std::cout << a << '\n';
}