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