比赛 SBOI2022暑假快乐赛① 评测结果 WWWWWWWWWW
题目名称 士兵放假了 最终得分 0
用户昵称 lihaoze 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-06-25 10:29:17
显示代码纯文本
#include <bits/stdc++.h>

using i64 = long long;
using d64 = long double;
using PII = std::pair<int, int>;
using PIC = std::pair<int, char>;

const int N = 1010;
i64 n, m;
d64 k;
PIC enemy;
std::vector<int> addNum, divNum, minusNum, chengNum;

int main() {
	freopen("holiday_and_angryF.in", "r", stdin); 
	freopen("holiday_and_angryF.out", "w", stdout);
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr);
	std::cin >> n >> m >> k;
	for (int i = 1; i <= n; ++ i) {
		auto& [x, y] = enemy;
		std::cin >> x >> y;
		if 		(y == '+') addNum.emplace_back(x);
		else if (y == '/') divNum.emplace_back(x);
		else if (y == '-') minusNum.emplace_back(x);
		else if (y == '*') chengNum.emplace_back(x);
	}
	auto cmp = [&](int a, int b) {
		return a < b;
	};
	std::sort(addNum.begin(), addNum.end(), cmp);
	std::sort(chengNum.begin(), chengNum.end(), cmp);
	std::sort(minusNum.begin(), minusNum.end(), cmp);
	for (auto i = minusNum.rbegin(); i != minusNum.rend(); i ++) {
		if (k < *i) break;
		k -= *i, minusNum.pop_back();
	}
	for (auto i : chengNum) {
		if (addNum.size())
			k += addNum.back(), addNum.pop_back();
		k *= i;
	}
	std::string flag[] = {"NO", "YES"};
	std::cout << flag[k > m] << '\n' << static_cast<i64>(k);
	return 0;
}